Skip to main content

Full text of "64 programmi per il Commodore 64"

See other formats


Commodore 

COMPUTER 

CLUB 


Presenta 

m 

programmi 

perii 

Commodore 

m 


Anno 1 - N. 1 - Luglio 1984 - Distr. MePe 


Gloriano Rossi • Marco Moccarelli 


64 

programmi 

perii 

Commodore 

64 


SOMMARIO 

0. Presentazione 5 

1. Giochi e passatempi 7 

Testa o croce 7 

Tiro di dadi 8 

Lancio 4 dadi 1 1 

Lui e lei 9 

3 carte 1 3 

Test memoria 1 5 

Generatore di labirinti 17 

Decide computer 19 

Crea un quiz 21 

Nim 23 

Bioritmi 27 

2. Grafica 32 

Parallelepipedo 32 

Demo grafica 34 

Prova schermo 36 

Istogrammi 37 

Pallina 40 

Grafica 42 

Nevicata 45 

Bozzetti 46 

Life (cellula) 48 

Topolino 52 

Autolab 54 

3. Gestione delle stringhe 56 

Divisione in sillabe 56 

Invertitore di parole 58 

Parola d’ordine multipla 59 

Risultati in cornice 61 

Messaggio segreto 63 

Ordinamento alfabetico 65 

Striscia scorrevole 67 



4. Musica 68 

Beep 68 

Piano 69 

5. Numeri 72 

Numeri casuali: distribuzione 72 

Min/max fra numeri casuali 74 

Numeri casuali: media 76 

Numero medio di una serie 77 

Dal precedente al decimale 78 

Percentuali 80 

Invertitore di numeri 81 

Scarta l’intero 82 

Arrotondamenti 83 

Arrotondamento a 2 cifre 85 

Deviazione standard 86 

Funzioni logiche 87 

Integrali 88 

Sistemi lineari 90 

Simulatore di calcolatrice RPN 93 

Divisione in fattori 95 

Da esadecimale in decimale 96 

Numeri caratteri 98 

T rova il numero 90 

6. Gestionali 1 01 

Aumento del valore monetario 101 

Differenza fra due date 1 03 

Giorno della settimana 1 05 

Comparazione di introiti 1 07 

Conta pezzi 1 09 

Inventario 110 

Ore salari 113 

Al penny 4- vicino 114 

Pagamento automobile 116 

Identificazione alfabetica 118 

Classificazione 119 

Pubblicità: costo per unità di vento 1 22 

Statistiche in base 1 000 123 

7. Sorpresa 1 24 

? ? ? 124 



* * 


0. Presentazione 


* * 


Perchè 64 programmi 
per il Commodore 64? 


Perche' 64 programmi per il Commodore 64 

Questo libro non vuole essere il meglio delle routinea 
o dei programmi per il Commodre 64 , ma una piccola 
raccolta di listati che possono essere utili sia al 
principiante che da chi e' già da tempo possessore di 
C64 . 

E' un libro dedicato a chi vuole capire con piccoli e 
semplici esempi tutti in linguaggio BASIC, il proprio 
computer . 

Un insieme, quindi, di programmi sia dilettevoli che 
didattici . 


Per semplificare la lettura dei programmi abbiamo 
utilizzato un programma appositamente studiato che 
lista le istruzioni in modo tale che quei caratteri di 
controllo cursore, di colore o di attributi di 
stringa, siano espressi in maniera chiara e 
innanzitutto leggibile. 

Troverete infatti ad esempio che il comando di 
cancellazione schermo, espresso graficamente con un 
cuoricino in negativo, viene scritto nel listato con 
CCLR3 . 


Nel,La tabellina che segue sono riportati tutti i 
simboli di controllo con la loro interpretazione posta 
fra parentesi quadre. Quindi ogni volta che appare un 
messaggio in parentesi quadra deve intendersi quale 


5 





comando da digitare in maniera opportuna, come 
daltronde e' aufficentemente spiegato nel manuale del 
vostro computer. 

Cosi' se troverete ad esempio C3 DOWN 3 , dovrete 
premere per tre volte il tasto di cursore in giu' 
<CRSR> . 

Vi augurano buon lavoro e buon divertimento gli autori 

Gloriano Rossi 
e 

Marco Moccarelli 


6 




★ * 


1. Giochi e passatempi 


* * 


Testa o croce 


Questo simpatico programma permette di 
trovare una soluzione ai dubbi con il 
classico sistema del "testa o croce". 

Scrivi il programma. 

Fallo girare. 

Sara' proprio il tuo Commodore che scriverà' 
TESTA o CROCE dopo ogni lancio. 

Per un nuovo lancio, premi il tasto RETURN. 

La linea 10 pulisce lo schermo. 

Le linee 20 e 30 generano un numero casuale 
(0 oppure Dea seconda dell'esito / scrivono 
"testa" o "croce". 

Le linee 50, 60 e 70 permettono l'iterazióne 
del programma tramite il tasto RETURN. 


1 0 PR I NT " t CLERR 3 " : REM PUL I Z I fi SCHERMO 
29 Q=RND < ~T I > 

38 IF aNT<2#<RND<l>>)Xl THEN PRIMI "TE 

STfi" : GOTO 50 
40 FRI NT "CROCE" 

50 PRIMI- PRIMI: PRIMI 

60 PR I MT " R I TEMI fi SARAI PIU' FORTUNATO ! 
70 INPUT "PREMI RETURN" ; K$ 

80 CLR 
90 GOTO 10 


7 



Tiro di dati 


Ecco un semplice sistema per lanciare due 
dadi e mostrarne i risultati. 

Le linee 20-30 trovano un numero casuale tra 
1 e 6 e lo associano ad A. 

Le linee 50-60 fanno lo stesso per il secondo 
dado <B) . 

Le linee 70-80 scrivono i risultati insieme 
ad un messaggio esplicativo. 


1 0 PR I NT " [ CLEflR 3 " •' REM PUL I ZI fl SCHERMO 
20 Q=RND <. -T I > 

30 A= I NT < 7#RND < 1 > > 

40 IF Ad THEN 30 
50 B= I NT < 7#RHB < 1 > > 

60 IF B<1 THEN 50 
70 FRI NT" PRIMO DRUO" ; h 
80 FRI NT" SECONDO DADO" ; B 
30 FOR L~1 TO 1 8 ; PR I NT : NEXTL 
100 PRI NT "UN" ALTRO LANCIO DEI DADI ?" 
110 INPUT "PREMI RETURN" ; K* 

120 CLR 
130 GOTO 10 


8 



Lancio 4 dadi 


Due dadi non ti bastavano? 

Ecco come averne quattro per ogni lancio! 
Naturalmente, questo programma lavora 
esattamente come il precedente, tranne che il 
comando FOR/NEXT nelle linee 60-150 fa 
ripetere al computer la fase di generazione e 
scrittura dei lanci. Se hai bisogno di sei, 
otto o dieci lanci, non devi far altro che 
sostituire al numero due nella linea 60 il 
numero tre, quattro o cinque. 


10 

F'R I NT " [ CLEfìR 3 " : R 

EM P 

ULIZIR S 

CHERMO 

20 

Q=RNB < -T I > 




30 

PRINT" LANCI Fi DUE 

DADI 

li 


40 

INPUT "PREMI REI 

URN"; 

K$ : PRINT 

: PRINT 

50 

PEI NT" CCLEARJ " : R 

EM F 

ULIZIR S 

CHERMO 

60 

POR L.~~ 1 TO 2 




70 

DL~ I NT < 7$END < 1 > > 




80 

IF DLC 1 THEN 70 




90 

DR= I NT < 7# RND < 1 > > 




1 00 

IF DR< 1 THEN 30 




110 

PRINT"*********" 




120 

PRINT"*" ;dl; "*"; 

dr; "* 

II 


130 

PRINT"*********" 




140 

PRINT PRINT 





9 



150 MEKTL. 

160 PRINT •' CLR : GOTO 30 



io 






Lui e lei 


Questo divertente gioco di società' usava 
solitamente come supporto dei fogli di carta 
su cui ogni giocatore scriveva segretamente 
la propria risposta, e la continua rotazione 
di foglietti da un giocatore al vicino ad 
ogni nuova domanda, provocava una combina- 
zione di esilaranti "storielle". 

Questa volta il supporto vi verrà' fornito 
dalla generosa memoria del vostro 64. 

Al gioco possono prendere parte fino a 10 
giocatori . 


10 

s$a> 

-"12 

DOWN 3 CR*. 

■'S3CHI E 

LUI 

II 


2@ 

S$ <. 2 > 

= "C2 

DONNI C R' 

'S 3 CH I E 

-■ LEI 

II 


30 

S'J : ( 3 ) 

= " f. 2 

DOWN 3 i R'- 

■'S 3 DOVE 

SONO " 



40 

S$ < 4 > 

= " C2 

DOWN 3 L R‘- 

•’S 3 COSA 

S TANE- 

0 FACE 


NDO" 







50 

S$<5) 

•- n r 

DOWN 3 C R ■ 

-’S 3 COSA 

DI CE 

LUI 

A 


LEI" 







60 

S$<6) 

= "C2 

DOWN 3 C RV 

/S 3 COSA 

DICE 

LEI 

A 


LUI" 







70 

S$<7) 

= " C2 

DOWN 3 C R‘- 

/S 3 COSA 

DICE 

LA 

GEN 


TE DI 

lori: 

j" 





80 

S'f ( 8 > 

= " C 2 

DOWN 3 CR'- 

/S 3 COSA 

FACEV 

'ANO 

PR 


IMA DI CONOSCERSI" 


il 



90 S$<9>="[2 B0WNHRVS3CHE LAVORO Ffl LU 
I" 

100 Sl(10)="[2 DOWN 3 C R VS 3 CHE ATTIVITÀ-' S 
VOLGE LEI" 

1 20 PR I NT " C CLEAR 3 [ 5 DOWN JC? RI GHT 3 QUfiNT I 
G I OCATOR I ( MAX . 1 0 > " : I NPUT G 
125 IF G< 1 OR G> 1 0 THEN PRINT"C2 UP3" =GO 
TO 120 

130 FOR W=1 TO G 

140 FOR T=1 TO IO 

1 50 PR I NT " C CLEAR I " S* < T > 

1 60 I NPUT " [ DOWN 3 " ; H$ < T , W > 

170 NENTT 

175 IF WOG THEN PRINT" [ CLEAR K 2 DOWN] H 
fi I F I N I TO ! " : PR I NT " C DOWN 3 TOCCA AL PRO 
SS IMO GIOCATORE! " : GOTO 180 
1 77 PR I NT " C CLEAR 3 C DOWN 3 C RVS 3 0!< ! [ 2 DOWN 3 A 
TTENDETE ! " '• FOR 1 = 1 TO 5000 NCXT 
180 FOR 1=1 TO 5000 ; NEXT I : NEXTW 
1 90 D= I NT < G/2 ) : PR I NT " C CLEAR 3 " 

200 FOR K=1 TO 10 

2 1 0 PR I NTST < !< > : PR I NT " l DOWN 3 " AT < l< , D > 

220 D=D+1 : IF D=G+1 THEN D=1 
230 FOR 1=1 TO 5000 : NEXT 
240 NEXTK 

250 IF D® I NT (. G/2 > THEN END 

254 PRINT "SPREMERE UN TASTO***" 

255 GET Z$ : IF Zt="" THEN 255 
260 GOTO 200 


12 



3 carte 


Un antico gioco arabo basato sulla velocita' 
e sull'abilità' del prestidigiatore consi- 
steva nel mescolare tre carte disposto a dor- 
so in su sopra un tavolo e di far acommetere 
a qualche sprovveduto passante quale fosse 
l'asse di cuori. 

Vi viene qui riproposto lo stesso gioco av- 
vincente, nel quale pero' il vostro avver- 
sario non sara' la mano veloce di un arabo ma 
la sorte che casualmente assegnerà' la posi- 


zione dall'asso di 

cuori • 

i 

P~0 



5 

“7.*- n • ■> n 
c~ •+ 

:X$="?" : V 

$= ,, ? n 

10 

GQSUE 

1 008 : UUSl 

B 1 030 

20 

f-rnb < 

1 > #6+ 1 


25 

IF F>6 

THEN F';‘~ 

6 

30 

IF F>8 

PINE F<2 

THEN 35 

31 

IF F>2 

AND F<4 

THEN 36 

òùd 

IF F>4 

AND F<6 

THEN 37 

•~i r.r 
O •-* 

2i="#" 

: "*P" : X 

■$= " * " : C= 1 •' GOTO 40 

36 


: :X 

■$-- : l>3 : GOTO 40 

•"» r 

Z$= : " + " 

: '?'■$="*" ■ X 

$="*" : 02 : GOTO 40 

40 

GQSUE 

1 000 



45 FGR G==l IO 2808 : NEXTG 


13 



50 F'R I NT " C CLERR 3 [ 3 DOWN] C 2 RI GHT 3 HAI FU 
NTATO SU" ;J 
55 IF C-J THEN 70 
60 IF COJ THEN 80 

70 PR I NT " C 3 DOWN ]C3 RI GHT 3 HR I V I NTO ! " • P 
--P+ 1 0900 : GOTO 90 

80 PR I NT “ C 3 DOWN 3 1 3 R I GHT 3 Hft I PERSO ! " ■ P 
=0- 1 0000 

90 PR I NT " C DOWN 3 SE I R QUOTA "P" LIRE" 

100 INPUT " C 3 DOWN 3 C 3 RI GHT 3 ANCORA " ; E* 
110 IF LEFTT<ET, 1><> "S" THEN 100 
117 PR I NT " C 3 DOWN 3 C 3 RIGHTKRVSK PREMI 
UN TASTO > C RVOFF 3 " 

120 GET W$=IF Wt="" THEN 120 
1 30 GOTO 5 
140 END 

175 PR I NT " C DOWN 3 SE T R QUOTA "P" LIRE" 

1 800 PR I NT " [ CLERR 3 C 3 DOWN 3 " ; T AB < 4 > " C RVS 3 
1 [ RVOFF 3 " ; TREK 1 1 > " [ RVS 3 2 C RVOFF 3 " ; T 
RE < 1 8 > " C RVS 3 3 C RVOFF 3 " 

1 0 1 0 PR I NT " [ DOWN 3 C 2 R I GHT 3 [ 2 R I GHT 3 « 

1020 SÌ="CRIGHT3 I ~ I ! Il I " 

1021 FOR 1=1 TO 5 : PRINTST : NEXTI 

1025 FRI NT" I "Zf" I ! "V$" I I "X$” 

! " 

1026 FOR 1=1 TO 5 : PRINTST : NEXT 

1027 PRINT" C2 RI GHT 3 [2 RI GHT 3 C2 

RI GHT 3 “ " 

1029 RETURN 

1030 PRINT" C DOWN 3 DOVE E" L'ASSO DI CUORI? 

il 

1040 INPUT J 

1045 IF ,K1 OR J>3 THEN PRINT" C2 UF*3" -G0T 
0 1 040 
1050 RETURN 


14 



Test memoria 


Questo simpatico programma metterà' a dura 
prova la vostra memoria t ! 

Il computer vi mostrerà' un numero per brevi 
istanti dopodiché' vi chiederà' di ripeterlo. 
Se per 3 volte sbaglierete vi verrà' 
visualizzato un messaggio. 

Diversamente vi verrà' proposto un altro 
numero. 


10 

PR I NT " t CLEfìR ] C TF8 3 

" •• CLP 

26 

Q=RHD <! ~ T I > 

1 ù., J. 


30 

S=1000*RND 

( 1 > 


40 

H= I NT < S*2 > 



50 

FRI HI" RI CO 

RIifiT I — 

\«» • k! 

.< i •; 

60 

IF W=3 THE 

M PRIMI" 

DIMENTICALO! ": GOTO 


1 40 



70 

POR T-l IO 

1000 : ME 

XI 

80 

FRI NT" ECLE 

RR 3 " 


90 

INPUT "CHE 

NUMERO 

ERR";S 

1 00 

IF SOM THEN PRIMI 

" ***HR I SBAGLIATO* 


**" : W*W+1 • 

3010 60 


1 10 

PRINT"***E 

SFITTO*** 

" :R=R+1 2=2+10 

120 

FRINIR; "IEMTRTIVO" 


125 

POR 1=1. TO 

1 000 : HE 

XI 

130 

PRIMT : GOTO 

30 



15 




Generatore di labirinti 


Il computer riempirà' il vostro schermo con 
un labirinto generato da valori casuali. 

Lo studio di questo programma potrà' esservi 
utile per la futura creazione di giochi a 
percorso. 


10 REM 


20 REM # * 
30 REM # GENERATORE DI LABIRINTI # 
40 REM # * 
60 REM * « 
70 REM * ADATTAMENTO PER IL CBM/64 * 
80 REM # * 


90 REM 

95 PQKE 53280. 14: POKE 53281 . 4 : PRINTCHR$ 
<5) ; CHR»<8) ; CHR#( 142) . CHR*C 147) : REM 
SFONDO 

100 DIM A (3 ): REM PREPARA LA TABELLA DEL 
LE DIREZIONI 

1 10 A<0)*2 : A< 1 )“-80 : A<2)=-2 = A<3)*60 = REM 
VALORI PER SCHERMO A 40 COLONNE 
120 WL* 1 60 : HL®32 : SC* 1 024 : A*SC+8 1 : REM 

VALORI PER CBM/64 
140 FOR 1*1 TO 23 
150 PRINTCHR»<18); 


17 



133 FQR W-l TO 39 
155 PRINTCHR*<32>; 

137 NEXTW=PRINT 
160 NEXTI 

200 REM GENERA IL LABIRINTO 
210 POKE fi, 4 
220 J*INT(RNDa>#4):X*J 
230 = IF PEEKCB)»WL THEN POKE B,J 

• POKE A4fK J)/2> HL : A*B : GOTO 220 
240 J«<J+l)*-(J<3>:iF JOX THEN 230 
250 J«PEEKCR> ; POKE H/HL : IF J<4 THEN A*A- 
A< J) : GOTO 220 

300 REM LABIRINTO PRONTO! = ASPETTA CHE 
VENGA PREMUTO UN TASTO 
310 GET C# : IF C*« ,,M THEN 310 
1000 REM ATTRAVERSAMENTO DEL LABIRINTO 
VERSIONE CBM64 
1010 POKE A/81 : J e 2 

1020 B*A+AU>X2:iF PEEK<B)*HL THEN POKE B 
, 81 : POKE A, HL : A-B : JcC J+2)+4#< J>1 ) 
1030 J*<J-1>~4#<J*0):GOTO 1020 


18 



Decide computer 


Ti ricordi il programma che diade tanta 
popolarità' al computer? 

Ora la potenza del calcolatore Commodore 64 
rende poaaibile una versione migliorata di 
quel programma. 

In questa edizione e' possibile una scelta 
tra otto alternative. 

Dopo ogni esecuzione il computer attende che 
tu prema un qualsiasi tasto per ricominciare. 


10 DATA LASCI fi PERDERE 

20 Dfìrfì accetta L'affare 

30 DATA SI ! 

40 DATA FORSE... 

50 DATA E'’ MEGLIO CHE RIORDINI LE TUE 
IDEE 

£.0 DATA SOPRASSIEDI 
70 DATA NO ! ! ! 

80 DATA OGGI NON USCIRE DI CASA 
90 Q=RND (-TI ) 

100 PRINT" CCLEAR] " 

110 M=INT<3*RND<1>> 

120 IF NC1 THEN 110 
13© FOR L=1 TO N 
140 READ fi$ 


1 » 



150 

NEXT 

L 

160 

PRINTfl* 

170 

GET y 

(.$ 

180 

IF K* 

P* ,,M THEN 170 

190 

RESTORE 

200 

GOTO 

1 00 



Crea un quiz 


Uno degli usi piu' affascinanti per il vostro 
computer e' impiegarlo per comunicazioni 
visive di carattere istruttivo, educativo o 
semplicemente divertente. 

Un utile modo di avviare queste conversazioni 
può' essere un quiz come quello qui 
presentato. 

I dati del quiz (la "conoscenza” del 

computer) sono nelle linee 20—70. 

Fai attenzione alle virgole e agli spazi che 
devono essere riprodotti correttamente quando 
trascrivi il programma. 

Le righe 90 e 100 generano un numero casuale 
fra 1 e 11. 

La riga 110 seleziona la riga nei DATA per' la 
domanda . 

Le linee 120-140 prendono l'esatto numerale 
dalla linea DATA -selezionata . 

Le linee 160-18Q scrivono la domanda del quiz 
sullo schermo, mentre la 190 legge nei DATA 
la risposta esatta. 

Tu fornisci la risposta che viene confrontata 
con quella esatta (220-240) . 

Naturalmente il quiz può' essere ampliato. 
Infatti in questo esempio, aggiungendo nuovi 
presidenti, in nuove linee DATA si aggiungono 
possibilità' di gioco. 


21 



10 F'RIHT" CCLERR] " 

29 DATA PRIMO, GEORGE WASHINGTON 

30 DATA SECONDO, JOHN ADAMS 

40 DATA TERZO, THOMAS JEFFERSON 
5@ DATA QUARTO, JAMES MADISON 
60 DATA QUINTO, JAMES MONRQE 
70 DATA SESTO, JOHN QUINCV ADAMS 
75 PRI NT "QUANTI" 

80 PRI NT "PRESI DENTI AMERICANI 
85 PRI NT "SAPRESTI ELENCARE?" 

90 R= I NT < 1 2#RND ( 1 ) > 

100 IF R< 1 THEN 90 

110 IF INTCR/2>=R/2 THEN R=R+1 

120 FOR L=1 TO R 

130 READ S$ 

140 NEXTL 

150 PRI NT : PRI NT 

160 PRI NT "CHI FU IL " 

170 PRINTS*.: " PRESIDENTE" 

180 PRI NT "DEGLI STATI UNITI?" 

190 READ C$ 

200 INPUT D* 

210 FOR L=1 TO 3 : PRI NT : NEXTL 
220 IF D$=C$ THEN PR I NT" ESATTO ! " : GOTO 24 
0 

230 PRI NT "SBAGLIATO!" 

240 PR I NT "IL " S$ 

250 PRI NT "PRESI DENTE FU" 

260 PRINTCf 
270 RESTORE 
280 PRI NT : PRI NT 
290 GOTO 90 


22 



Nim 


Questo antico gioco cinese viene qui 
riproposto fedelmente, fornendovi pero' un 
avversario praticamente imbattibile. 

A turno dovrete togliere da una sola fila per 
volta quanti fiammiferi vorrete. 

Vince chi lascia all'avversario l'ultimo 
fiammifero da togliere. 


20 CLR : PR I NT " [ CLEAR ] C NERO D " ; POKE 53280 
, 8 : PQKE 53281/8 

30 PRINT TABU4)" GIOCO DEL NIM" 

40 FOR K=1 TO 40 = PRINT"-" ; .NEXTK 
50 PRINT "DI SPORREMO DEI FIAMMIFERI SU 3 
RIGHE, " 

70 PRINT "CIASCUNO DI NOI POTRÀ" TOGLIER 
E" 

80 PRINT "QUANTI FIAMMIFERI VUOLE/ MA DA 
UNA" 

90 PRINT "SOLA RIGA . VINCERÀ" CHI TOGLI 
ERA" " 

95 PR I NT " L " IJLT I MO FIAMMIFERO." 

100 FOR K=1 TO 40 : PRINT"-" J -NEXTK 
105 FOR K=1 TO 3 

110 PRINT "QUANTI FIAMMIFERI SULLA"K"" RI 

GA? "; 


23 



128 GET flf(K) : IF A$<K)=" " THEN 120 
130 AOO«VAL<A#<K)> 

140 IF fì(KK s 0 THEN 120 
145 PRINTA$<K> : PRINT : NEXTK 
155 G03UB 1000 

160 PR I NT " OK - VUOI INIZIRRE PER PRIMO ? 

Il • 

170 GET R$ : IF R? 55 " " THEN 170 
175 PRINTR* 

180 IF R$="S" THEN 250 
190 IF R$»"N" THEN 210 
200 GOTO 170 

210 REM MUOVE IL COMPUTER 
220 PRI NT "POSSO MUOVERE ? "j 
230 GET R$ : IF R*0"S" THEN 230 
235 PRINTRt 
240 GOSUB 3000 
250 REM MUOVE IL GIOCATORE 
260 PRI NT "VUOI TOGLIERE DALLA RIGA 1,2 0 
3 ? M j5 

270 GET R«:iF R$*"" THEN 270 
275 R«VAL(R$) 

290 IF R<1 OR R>3 THEN 270 
295 PRINTR# 

310 PRI NT " QUANTI FIAMMIFERI ?" 

320 GET R$:iF R$="" THEN' 320 
322 IF VRL<R$)*0 THEN 320 
325 PRINTR* 

330 IF ACR)-VAL<R$K0 THEN GOSUB 1000 :GO 
TO 260 

340 ACR)*A(R>-VALCR$) 

350 GOSUB 4000 

360 IF M«0 THEN PRI NT "HAI VINTO TU !":QO 
TO 500 

370 GOSUB 1000 
380 GOTO 210 


24 



500 REM RICHIESTA DI PROSEGUIMENTO 
510 PRINT "VUOI GIOCARE ANCORA ?" 

520 GET R$ ; IF R*«" M THEN 520 
530 IF R$»"S" THEN 1 
540 PRINT "CIRO ! " : END 
1000 REM STAMPA TABELLONE 
1010 PRINTCHRf <147> 

1015 FOR K*1 TO 3 
1017 PRINTK"'RIGA"; 

1020 IF A<K)*0GOTO 1040 
1030 FOR J=1 TO R<K) 

1035 PRINT TAB< 15) " I 
1038 NEXTJ 

1040 PRINT: print : NEXTK 
1050 FOR K*1 TO 40 
1055 PRINT"-"; 

1058 NEXTK= RETURN 

2000 REM ANALISI SICUREZZA DELLA MOSSA 
2010 F*0:FOR K»1 TO 3= FOR J“0 TO BCK) 

2015 READ B$0O : NEXTJ : RESTORE : NEXTK 
2020 FOR K*1 TO 4 = S*0 

2030 BBf OO*"0"+MID$<Bf < 1 ) , K> 1 >+MID$<B*<2 

),K,1> 

2035 BB$CK>=BB$<K)+MID$<Bf(3>,K, O 
2040 READ C S 

2050 IF BB*<IO=C# THEN RESTORE =GOTO 2070 
2060 GOTO 2040 

2070 FOR J*1 TO 4':S<J>*VAL<MID$<C$, J, 1>) 
2075 S*S+S<J): NEXTJ 

2080 IF S-0 OR S*2 OR S«4 OR S*6 THEN 209 
0 

2085 IF S»8 OR S»10 OR S«12 THEN 2090 

2088 F*i: RETURN 

2090 NEXTK :F*0: RETURN 

3000 REM DECISIONE E MOSSA 

3010 FOR K*1 TO 3 : B(K)*A(K) : NEXTK 


25 



3020 Y«1 

3030 IF B(Y>®0 THEN B<Y)»RCY) : GOTO 3050 

3040 BC Y)-B< Y)-l : GOSUB 2000 

3042 IF FO0 THEN 3030 

3045 FOR K«1 TO 3 = AOO=BOO :NEXTK 

3048 GOTO 3110 

3050 IF Y*3 THEN 3070 

3060 Y*Y+1 : GOTO 3030 

3070 GOSUB 4000 

3090 X* I NT < M#RND < 1 ) + 1 ) 

3100 ACW)*M-X 

3110 GOSUB 1000 

3115 GOSUB 4000 

3120 IF MO0 THEN RETURN 

3130 FRI NT " HO VINTO IO! " : GOTO 500 

4000 REM RICERCA NUM. MAX PER RIGA 

4005 M»0:N«0 

4010 FOR H«1 TO 3 

4015 IF RCH»M THEN M*A<H):W«H 

4020 NEXTH 

4030 RETURN 

4050 REM :NUM MRX»M, SULLA RIGA W 
5000 DATA 0000,0001,0010,0011,0100,0101,0 
110,0111 

5010 DATA 1000,1001,1010,1011,1100,1101,1 

110,1111 

31130 PRINT“HQ VINTO IO !":GOTQ 500 


28 



Bioritmi 


Un utile programma per conoacere il vostro 
attuale stato di salute fisico, psicologico e 
mentale . 

I bioritmi sono tre cicli sinusoidali 
rispettivamente di 23, 28 e 33 giorn-i 
riguardanti il primo lo stato fisico di un 
individuo, il secondo lo stato emotivo e 
l'ultimo quello intellettivo. 

Ogni volta che una curva attraversa l'asse 
delle ascisse dall' alto verso il basso si ha 
un calo della propria potenziàlita' . 

II programma prevede inoltre il confronto 
della compatibilita' di diversi bioritmi. 


1 POKE 53280 , 3 ■ POKE 5328 1 , 3 : PR I NT " C CLE 
RE 3" 

1 60 D I M fi < 1 2 > > X < 3 > .. J < 3 > , CD < 3 .• 2 > .• R < 3 > .. S ( 3 
) : POR I “ 1 TU 1 2 : EEfiD fi < I } : NERI DEF r F 
H V < ! > ”28™ < I /4= I NT < I /4 > > 

1 02 P < 1 > = 1 6 : P < 2 > =5 : P < 3 > =3 : GEHFEEMfiRfi 

PRMfiGG I ULUGfìGOSETO "! THOVD I C " : W$™ " LMMG 
VSD " 

108 Spl=" " : F$=" CROME 

3 C22 DOWN 3 

1 1 0 DEE FHP < I > = 1 823™ I NT <1 + 11. 5 > *40+ 1 NT < < 


27 



Q+1V2) 


1 

26 

BEF pus j ~g*S r h «:; < 7/ 

I - 1 NT < T 

/r> 

) #2# IT ) 

1 

56 

PR I NT " [ HOME ] " ; : GOSUB 

9070 : P 

RIN 

TFT ; : G 



OSUB 9070 




1 

57 

PR J HTF$ " r 2 UP 31 VERDE 

1 TSTP! \ ? 

I OH 

I ?"; : 



GOSUB 9060 ■ IF 

THEN 2 

Qfi 


1 

68 

PR I MI " L CLEfìR 3 [ ELEO 3 C 

2 DOWN 3 

INT 

RODUCI 



COSI 'I rifili • C2 DOWN 

1 f Pficgp 

3 ME 

SE/GIO 



/ANNO 




1 

rr 
> J 

PR I NT " [ 2 DOWN 3 I ROSSO 

3(8/13/ 

57 C 

BLEU 3 = 



AGO 1 3 .• 1 957 > " •’ PR I NT M 

13 DOWN 

] [ v 

I0LR3U 



SfìRE LE BARRE ! " 




1 

o * - ~i 

GOSUB 9O50 ; PR I NT " [ GL 

ERR 3 C DO 

WH 3 

[MIN-M 



RI ITT L* #! 


! 

-, -r\* 

1 

85 

PR I NT H r ROSSO ] C 2 DOWN 

3P1 CBLE 

IJ3 

.-■UOVO 



QUADRO" : FRI NT" [DOWN.] 

[ROSSO 3 

F7C 

BLEU 3 



♦TfiMPo filtri 20 di " 




1 

86 

PR I NT" C DOWN] CROSSO 3- 

[ BLEU 3 

Gl 

ORNI C 



R ITI CI" • PR I NT " [ DOWN .1 

[ROSSO 3 

# [ B 

LEU 3 



ESCI " : PRINT" [DOWN 3 [ 

ROSSO 3- 

IBL 

EU 3 -0 



NFRONTfl" : GOSUB 9050 




1 

9 y 

POKE 53281,7 




ci 

00 

PR I NT " C m I USC . 3 C CLEFl 

R 3 [ DOWN 3 [ BLELJ 3 ST 



RMPR DR" : PRINT" (ME/D 

I/RNHL 

EFT3CUP3" 



; : GOSUB 1 000 : 1 F 1 1 ~@ 

THEN 2 

00 



10 

M 1 = 11 : D 1 : = 1 2 : V 1 = 1 3 : DO 

-DI : POR 

I = 

1 TO M 



1 "1 : D0=D0+fì( I > : NE/T 





15 

D3=V 1 #365+00 : POR I ~ 1 

TO VI- 

1 D 

3=037 ( 



I /4= I NT < I /4 > > : NE/T 




•li. 

20 

PRINT" C HOME] C 5 DOWN 3 

[BLEU3NRSC 

ITR " 



I : GOSUB 1 000 • IF 11=0 

THEN 2 

20 


d 

25 

M -= 1 1 : POR 1 = 1 TO M-l: 

I 2= I 2+fi 

T > 

: NE/T : 



GOSUB 800 : D= 1 2 : V= 1 3 




iiì! 

70 

PRINT" C DOWN 3 CONFRONTO?" : GOS 

1 IO 
•J.L» 

906 U • h! 


28 



280 


290 

300 


400 


500 


501 


510 


600 


6 1 0 


615 


f-, 


618 


619 

620 


"0 : 13=0 : IF I$="N" THEH 300 

R~ 1 : PR I NT " Z HOME ] Z 9 DOWN 3 HflSC I Tfl 2 " ; 

: GOSUB 1000: IF 11=0 THEH 280 

POR I = 1 IO 1 1 - 1 : 1 2= 1 2+fl < I > : NEXT : T3=T 

: GOSUB 800 : GOSUB 820 


IP x<0 OR T3<0 THEH PRIHT" [RVS3SI CO 
HTfl DflLL.fi TUR " : PR INT" [RVS 3 NASCI Tfl " " 
GOSUB 1030 ; GOTO 200 
PR I NT" Z CLEfìR 3 Z 2 DOWN 3 Z ROSSO 3 fl " M I DT < 
m , 3 : +:M ì -2 .• 3 > D 1 " .. " V 1 + 1 900 : PR I NT " Z DOWN 
3 Hfì I V I SSUTO PER BEN " : FRI NT " C L.EFT 3 !I D 

OWN3 "T" Gl ORNI ~ 

GOSUB 9050 : POKE 36379 , 8 : PR I HT " [ CLERR 
3 [ R2ZUR 3 " LEFTT < FT .. 9 > : POR I = 1 TO 20 : P 
R I NT " !I NERO 3 [ flZZUR 3 " ; : NERI’ I 
PR I HTLEFTT < Ff .• 1 9 ) " t NERO 3 Z RVS 3 " SPT : T2 
=M1 

PR T HT! FFTf ( Ff , 1 9 ':> " !' NFRfs 1 !" R'..'S 1 11 M T rii- r' M 

$ , 3*M 1~2 , 3 > V 1 + 1 900 " r; RVÓFF 3 " J : PR I NTLE 
FT$<F$,20>; 

POR I ~ 1 TO 3 : J (l ') =0 ' R < I > =0 : POR J«=0 T 
0 2 : CD < I , J > ”0 : NEXTJ , I : POR Q= 1 TO 40 : 


IF Q/2= I NT <: Q/2 ) THEH 618 

É=D3~ 1 : E= I NT < ?* < E/7 1 HT < E/7 ) ) + . 5 > + 1 : 

E T=M I D$ ( STRT < D 1 > .. 2 ) 

PR I NT " Z BLEU 3 1 RVS 3 " M I M < W$ , E , 1 > " Z RVOF 
F 3 Z DOWN 3 C LEFT 3 " LEFTT < ET , 1 > " Z DOWN 3 " ; : 
I P LEH < ET > > 1 THEH PR I HT " Z LEFT 3 " R I GHT 
fr; ET., 1. ) ; 

PRINT"C2 UP 3 " ; 

POKE 36878, 9 : POR 1=1 TO 3 : K=FNS< 18+1 


#5> : GOSUB 820 : R< I > 


' T 




H >■. FNS '• 1 8+ 1 #5 > > > *2 . 5 : GOSUB 820 
IF X< . 6 ' AND " X>~ . 6 THEH " CD < ì 7 J ( I > ) =M 1 
#100+01 :J(I)=J(I)+1 
Z=PEEK < FNP < X > > : IF Z*32 OR Z=45 OR Z= 


29 



PCI) THEN POKE FNP 
X ) + 5 4 2 72'.' 1+3 
622 GOTO 630 
625 POKE FNP 00,42 
638 MEXT : B3=B3+ . 5 ■ T=T+ 


, P< I > : POKE FNP < 


T3=T3+ . 5 : Il 1 =D 1 + 


649 

IF B1>=R 

011>+1 


THEN 

Tj 

1 = 

1 

X 


M 

i 

— M 

— i I 

1 + 1 

: IF 


MI >12 IH 

EN Ml = 

•i 

1 

-vi- 

vi 

fi 








650 

NEXT •• POK 

E 198- 

0 

: IF 

T •”> 

i i-. 


l-.f 

.i. 


finn 

DB 

1 /“% 1 

X X 


THEN PR 

r j-. j t i irp 

T 

* r::± 

•K *•. ! 

, 1 

9 ) 

II 

r 

■j 


R 

IGH 

TIEN 


ERO x 1: RVS 

] "MI B$ 

( 

vj ; J; , 

*M 

1 - 


.. 

O 

*1 

VI 

+ 1 3 

00 

655 

PR I NTF:£ " 

r «,/Pppr 

•f 

DppM 

r 

x 

FI 

.. 

[.T 

r 

.. 

c ,• 

Q “ ; 

: rp 


R=1 THEN 

FRI NT 

ii 

, R" ; 










730 

GOSUB 90 

60 ' I *=“H 


c< 1 $ 

y : 

IF 


T 

X 

=s 

1 

33 

TH 

EH 2 


Q£l 













"? cr 
i J 

XF 1=31 

THEN P 

!•? 

I NT " 

r c 

LE 

Q 

p 

1 

r 

ve 

V 

pr\p 

*] «» : p 


OKE 5328 

1 , 9 ^ EH 

D 











745 

IF 1 082 

OR f r* ::r: 

0 

THE 

N 

75 

0 







7 4 ò 

FRINÌ" !.:C 

LEPRI E 

'£ 

T ftNC 

01 

L'O 

M 

p 

H 

T 

i 

T T‘. 

ILI 

TFT : 


PR I NT " E DOWN ] P I 


»« p 

< 1 

»» 

V 

il 


P 

RI 

NT" 

EMOT 


; •« fi? "« -, «• V 

” • PR I N 

T 

ti Tj.|T 


ii 








750 

IF 1=136 

THEN 

4 

00 










780 

IF 1067 

THEN 

6 

cr cr 










785 

PR I NT " [ C 

LEPRI [ 

p 

risso 

K 

RV 

!£• 

] 

G 

I 

OR 

NI 

CRIT 


ICI " : PR 

T KIT »« r •“> 

x i n : L 


DOWN 

K 

py 


1 

.j 

p 

[ 

RV 

OFF 

ISIC 


. E2 RIGH 

TI [RVS 

i 

E [ RV 

OR 

F3 

n 

0 

T 


E 2 

RI 

GHT1 


r RVS] TIR 

VOFF 3 H 

T 

i 

! 1 

0 










790 

FOR 1=1 

TO 3 : F 

o 

p T~ 

0 

TO 

1 

£-• 


T 

X 

F 

CDC 

I, J> 


=0 THEN 

794 












791 

K2= I NT C C 

Da, j> 

/ 

1 00 > 

: !< 

i ~ 

j. 

p 

Ti 

< 

r 

X 

> J 

) -K 

2*10 


0 ; K2=K2- 

i 












792 

PRINTLEF 

TT< FT, 

6 

+2#J 


TPB 

( 

r 

I 

-1 

>+7 

>MID 


*<B*,K2* 

3+1 , 3) 

Cj 

TR*< 

IN 


K 

1 

> 

'i 




794 

NEXTJ, I : 

GOTO 6 

5 

c 

•J 










800 

t=0 : IF V 

1 = 13 T 

H 

EN 3 

10 









805 

FOR 1=13 

+ 1 T.O 

V 

1-1 ^ 

T= 

T- 

< 

I 

,*** 

'4 

= INT < 

I/4> 



> : NEXT : T-T- < I 3/4= I NT < I 3/4 > RN.D I 2>58 


O \ Jyj 

T=T+ < V 1 

- 1 3 

-1- 

( D0>- 1 2 ) ) #365 ( TJiT> 

= 1 2 > W 


Tfp( T 8 ’? 

..... T f 

PK~ t 

•“> ') :n«: f f“ : ; T v f Tifi ') : ppT 

URN 

RPtf 

'? r.::: T : 

y :> : 

"Ci!- 

; pir.T; «pu 


1 

j-4 • J i-.jp 

! JT 

T -t: ; 

1 1 = VAL < LEFT $ < I $ , 2 > 

> : IF 


jvj 1 T\-$ ( T:J 

*r* ! 2 1 — 2 • T 

•- 2 ■' 

;j >> 

h q «* r?p hi ? r , t <\y . •;;> t -j 

:f »* P\ H 

1 mb 

1 !.«.• 1 ... !*,l ! 

I 2~VfìL ( 

MÌE ! 

$<I 

:£ ; | , 2> ;» : T S^VRL < R I G 



, 2; ) ) : f\ 

( !•/ ) 


V( I3> : t F‘ 1 1 >i 2 OR 

T 1 1 


TMFM 1 Pi 

30 





1 rr./M 

! ©30 

TP -\y\& 
6b r ufìi r p 

PKjTi T 
KJfj 

: - ; p r T 
tì c:« t *' r 

1 ) THEM RETURN 

DO " : POR 1=0 T0- 


1 pori : j-.,jp 

T ; pp 

r kry n r r 

j FhR "! ” : T 1 rrfi : pFT! IR- 


U 

1 -J 




Sh5£ì 

PRIMTFf" 

i“ i io ~i r 

BLEU 3 

PRETI I UH TASTO" 

9 Fiori 

fìFT T it' ■ ] 

p T 

un yup 

N 3069 

3065 

PPTj |pK! 




Ci Qypi 

POR 1=1 

TU 21 

: PRIMI 

M 1 1\$ *: M r NERO I! 1 E I RH 


CO .! t ROSS 

fi “j r P7 

7! jp i r «,.« 

i olr i e ve:rd5“ :.i e blejj 


3 r ri t pllo 

*] » , 1 ..«.. 

( I >8 > # 

8-f ( I ;> 1 6 } : i > " r py 


sì " i; V • : NÈ 

vr : pp 

ii: : : •- 

IMI” TV 

FRTiF i rpVRl TI FFT‘3 !" 


INSTI CR 

y OFF ] 

H ; ; pOT 

URH 

3 1 00 

n htr 3.' • 

23 3 1 

, ■‘•■J'i'ì . “J } 

,30,31,31,38, 31,3 


0 * 3 .1. 





31 



* * 


2. Grafica 


* * 


Parallelepipedo 


Queata sezione del libro e' dedicata alla 
grafica a colori. 

Troverete un certo numero di nuove ed 
interessanti applicazioni delle capacita' 
grafiche del vostro computer Commodore. 

Gli esempi proposti possono essere modificati 

0 combinati tra loro per adattarsi a 
qualsiasi esigenza. 

1 titoli rappresentano solo l'idea originale 
da cui sono sorti i diversi programmi , ma la 
vostra fantasia potrà' dare vita a nuove ed 
infinite creazioni. 

Possono essere modificati i colori degli 
oggetti e le posizioni sullo schermo, nonché' 
i vari movimenti. 

Il seguente listato genera il disegno di un 
parallelepipedo regolale . 


1 0 PR I NT n IXLEfiR ] n • REM PUL I Z I fi SCHERMO 
20 PRIMI : PRIMI ; PRIMI 
30 PR I NT8FC < 5 > ; CHE* < 1 1 D ; 

40 POR L= 1 IO 1 0 : PR I MICHE* < 1 63 ) ; •* NEXT 
50 PR I MI CHE* < 112 
60 POR L=1 IO 13 

70 PR I NTSPC 5 > ; CHE* ( 1 65 > ; 8PC < 1 0 > ; CHR* < 1 


32 



67 ) 

80 NEXTL 

90 PR I NTSPC ( 5 > ; CHR$ < 1 08 > ; 

100 FOR L=1 TU 1 0 : PR I NT CHR$ < 1 64 > : NEH'T 
110 PR I NT CHR$ < 1 86 > 



33 


Demo grafica 


Quello che segue e' un programma dimostrativo 
molto Interessante. 

Se avrete la pazienza di attendere che il 
vostro computer esegua tutti 1 suoi calcoli e 
stampi le diverse migliaia di punti che 
comporranno il disegno finale. 

Il programma sfrutta la grafica ad alta 
risoluzione del Commodore 64. 

Nella linea 10 sono contenuti i valori dello 
sfondo e dei punti disegnati. 

Alla linea 50 troviamo altezza e distanza del 
punto di visuale, mentre la linea 90 contiene 
la funzione da rappresentare. 

Le linee 130 e 140 stampano i punti. 

Purtoppo il calcolatore nella sua versione 
base, senza cioè' un adeguato supporto di 
routine in linguaggio macchina impiega 50 
minuti per completare la figura, ma ne vale 
la pena . 

Salvate il programma prima di lanciarlo, 
perche' un'eventuale errore di trascrizione 
porterebbe all^inchiodamento” della mac- 
china. 


5 V ~53248 : C : " 56576 ■ Sfì=24576 
8 PRIMI" CCLEfìR'J " 


34 



19 FOR 1 = 1 6384+7* 1*924 TO 16384+7*1924+9 
99 : POKE 1,91*1 6+ 1 4 : NEXT 

15 FOR 1=24576 TO 24576+8191 : POKE 1,9-N 
EXT 

20 POKE 'v'+ 1 7 , PEEK < V+ 1 7 '? OR 32 
30 POKE V+24 , 7* 1 6+8 

35 POKE C , F'EEK ( C ) OHI) 254 
50 11=220 44=180 
60 FOR X=--160 TO 160 
70 S=20 

80 I F X/20= I NT ( X/20 > THEN S=1 
85 FOR V=0 TO 60O STEP S 
90 2= 1 6*C08 '• . 06*X > 

1 00 I = I NT ( 1 6@+B*XX < B+V-) > : J= I NT < 1 60 H~D* < 

2--H > / ( B+V > > 


1 30 

Bfì=Sfì+320* I NT ( J/8 > + I NT < I /8 > 

#8+ < j- r nt 


»!’ J/Q ) :*}*: ) 


1 40 

POKE Efl . PEEK < E fi > OR < 2 T< 7 - ( 

I-INTCI/S 


ì $0 j ’j ;i 


150 

NEXT : NEXT 


1 y000 

ijiij 1 1 j 1 00yti 



35 



Prova schermo 


Questo programmino di utilità' vi consente di 
vedere tutte le combinazioni di colori 
sfondo/bordo che il vostro computer può' 
offrirvi , visualizzando anche i valori che 
andranno inseriti nelle locazioni 53280 e 
53281 per ottenere ogni combinazione. 


.10 


■f :.\j. !» 


20 


( 29 :» 


30 

CG$=CHR$ 

< 1 7 > 


•~i r.r 

. . J 

POR S~0 

TO 255 


40 

FHP M 

rn pff 


50 

POKE 532 

80 , K 


60 

PRIMTPf; 

p i { T| t; ; r*Tj 

$ ; CG$ ; CG$ :■ CG$ ; CGf ; 


CG$ CGf 1 

CG$ 


70 

FRI NT" [ .1. 

j./ 

0 HORH'J [ 15 

R I GUI J POKE53280 .. " 

r~: 
r -.j 

-PRINT" C2 

DOWN] [15 

R I GHT .3 P0KE5328 1 .« " ; 

80 

POR 3>j. 

T'fj 500 : 0p’:-! 

T 

90 

T 



00 

POKE 532 

8 1 . S 


10 

NERI 




36 



Istogrammi 


Questo programma fornisce un' istogramma 
diviso in dodici mesi delle entrate annuali 
di un determinato commercio o situazione 
economica di famiglia. 

Ogni barra può' essere lunga al massimo 17 
unita' . 


100 

DIN fi 

(23> .• M(23) 

C ( 23 ) . 

L:T(23) 

110 

s$<: i > 

*" 1 RVOFF 3 _ 

: S$<2.‘ 

« = ''[ RVOFF 3-," -S$ 


( 3 ) " 

I RVOFF ] mi" ■ 

SS <4 

’C RVOFF 3 ■" 

120 

Si : ( 5 ) 

1 ‘ I” p *, C‘ % ~| 1 1 ; 

S:f ( S ) = 1 

'[RVS 3 " : S $<?> = 


" E RVS 

: s$<8> = 

"[RVS 3 

il 

130 

V~ : 0 ^ N 

= 1 5 : Z=- 1 



140 

PRINT 

" C OLEARI CG 

TALLO 3 ' 

' : POKE 53280.' 9 : 


POKE: 53281 , 8 

188 resture: 

190 INPUT "VALORE DI UNA SUDDIVISIONE"; F 
195 F~ 1 /F 

200 INPUT " QUANTE BARRE a-23>"; 

N 

210 P— 2 ■ I F N> 1 1 THEN P=1 
220 1F N< 1 OR N>23 THEN 190 
230 POR 1=1 TO N 

250 PR I NT " N . " I • I NPUT " LEGENDA " ; L$ < I > : I N 
PUT " VALORE " : A < I > : PR I N T • L$=LEFT$ ( L $ , 


37 



1 2 > 

260 NEXTI 

270 PRIHT" CCLEfìR]" 

280 FOR 1=1 TÓ N 

290 M ( I > = I NT < < fi < I > #F > /8 ) 

295 , C ( I > = ( fi < I > #F > - < M < I > #8 > 

300 NEXTI 

320 IF V=N THEN 800 

340 V=V+ 1 : X=X+P : Z=Z+ 1 : M=M ( V > : C=C C V > 

345 READ D 
350 PRINTCHR$<D> 

360 PR I NT " L HOME 3 " ; : FOR I =0 TO Z : PR I NT : NE 
XT 

380 F'R I NTLi : ( V > 

400 I F M-0 THEN GOSUE 700 ; GOTO 320 

420 GOSUE 480 

448 IF C>0 THEN GOSUE 610 

46Gi GOTO 320 

480 PR I NT " l NONE 3 " i - FOR I =1 TO 23 : PR I NT : N 
EXT 

490 FOR 1=1 TO M 

500 FOR J=1 TO 8 : PR I NT T fiB < X > S$ < J > " [LEFT 


3"; - GOSUE 600 •' NEXT 
5 1 0 PR I NT " C UP 3 C LEFT 3 " ; NEXT I 
609 FOR H=1 TO 10= NEXT: RETURN 
6 1 8 PR I NTSPC < 1 > S$ < C : RETURN 
700 PR I NT " C HOME 3 " : • FOR 1 = 1 TO 23 •' PR I NT : N 
EXT 


720 FOR ,r=l TO C ; PRINT TfiB (. X > S$ < J > " C LEFT 
3 " ; : GOSUE 600 : NEXT J : RETURN 
800 GET fi* : IF fi*= n " THEN 800 
820 RIJN 

1000 IifiTft 5, 159, 156, 30, 158, 129, 150, 152, 15 
3, 154 

2000 rifìTfì 5,159, 156,30, 158, 129, 150, 152, 15 
3, 154 


38 










Pallina 


Simpatico programma di animazione che mostra 
una pallina che rimbalza da una parte 
all'altra dello schermo, deviata dagli 
ostacoli colorati che incontra sul suo 
cammino, producendo suoni diversi ad ogni 
rimbalzo. 


3 R E M A A A A A A A; ; *:• A A Ai AA A AAA A A i A A A A A A A A A A A A A 
A 

4 REM A PALLINA 

A 

5 REM AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
A 

1 0 CLR : PR I NT ” C CLEAR I C E BANCO 'J " 

11 G08UB 10O0 

13 POR C=5529S TO 56295 : POKE C, 1 : NEXTC 

15 POKE 53281,0 

21 FAR L=1 TO 20 

25 POKE 1 024 + 1 NT < END < 1 > A 960 > , 1 02 

27 NENIE 

30 X = 1 ; V— 1 

40 DX=1 •• DV=1 

50 POKE 1 024+N+40AV , 8 1 

60 FAR T~1 TO 10 

70 POKE 1 824 + X+49AV , 32 


40 



80 

>OX+B>P IF X=0 OR 
SUE 1 000 

>03 9 THFH D 

3. 00 

V=V+DV : IF VC1 OR 
SUB 1000 

V>23 THEN D 

115 

I F PEEK < 1 024+X+40 

4eV.> = 1 02 THE 


: DV=-HV : GOTO 135 


120 

GOTO 50 


| 35 

POKE 1 024 +X+40# 1 V 


1 40 

GOSUB 1 0@0 


1 50 

GOTO 80 


1 000 

RB-54291 : V-54296 : 

WF-54298 ; HF 


F=54286 


1010 

POKE V, 15 POKE WF 

, 33 ^ POKE HI) 

1 020- 

POKE HF. 2*5+15 : PO 

KE LF , V#5+5 

1030 

POR U=0 TO 99 : NEX 

T! ! 

1 H AFi 

.POKE WF .■ 0 


UfJb 

POKE 53280 , X$5+ 1 5 

: POKE 53281 

1040 

RETURN 



41 



Grafica 


Quello che segue e' all'apparenza un 
programma abbastanza complesso , ma che 
illustra brillantemente alcune delle piu' 
elementari capacita' grafiche del vostro 
computer. 

Dopo una breve attesa verrà' disegnata una 
sinusoide sugli assi cartesiani e in 
seguito. •• ai piu' bravi scoprirlo! 


5 

PRIMI" 

mi FRR ì n 


1@ 

F0R 

55296 TU 

56295 : POKE IO 1 : NEKT 

20 

FOR Jj~ 

1G24 IO 

2023 : POKE D, 160-NENT 

20 

GOTO 2 

50 


1 90 

INPUT 

"C HOME IH 

li il • U II 

.* i .* r i .* » 

105 

GOSUB 

i j. 0 : GOTO 

1 00 

1 .1. 0 

y — y + ], — 

FlBS < SGH 

< S > > ■ H2- < H*S+H0 > : V2- ( V 


*3*'. 75 

4-V@ 


115 

FRI NT" 

[HOME]" •• 

SO 1 @24 ; 00=55296 

1 20 

H2-H2/ 

,;;'J • ~ ‘ / 

2-IF V2>25 OR V2C0 OR 


H2>~40 

1 OR H2<6 

THEN POKE CC+39, 1 : POK 


f 

Q , 191 : pp 

TURH 

121 

K~PEEK 

( T Kj T* j-| 9 ) 

+ SC +960 ~ I NT ( V2 *40 ) : PO 


T J--.ST 

< H2 > +C0+ 

960 1 NT < V2 ) *40 .• CK 

1 30 

L~0 : G~ 

0 : I P IO 1 

27 THEN K=K AND 127 -0= 


42 



1 


131 

IF 

fy* 

:~9 

6 OR K-32 


THE 

N 

L“0 





132 

IF 

K 

~ 1 

26 THEN 

L 

= 1 







133 

IP 

P 

— 1 

j. 

24 THEN 

| 

ss 2 







134 

IF 

K 

— 4 

X 

23 THEN 

L 

=4 







135 

IF 

j.:;‘ 

= 1 

08 THEN 

L 

: ~: ; 3 







1 36 

IF 


SS 9 

7 THEN 

L 

=5 







137 

IF 

k 

ss 9 

8 THEN 

i 

t— 

X CU. 







1 3 8 

IF 

[/; 

“1 

27 THEN 

l 

5=9 







1 49 

IF 

G 

= 1 

THEN L 

= 

15- 

L 






150 

HI 

=i 

: ì 

F H2-- 1 NT < 

H 

2 ) 

ss 

.5 THEN 


HI =2 


1 52 

•,.» i 

1 i. 

=4 

; T 

F V2 1 NT •: 

l |f l 

j '\ 

SS 

.5 TH 

EH 


Vl = l 


155 

0= 

HI 

#V 

1 : V2= I NT *: 

i jf l 

1"’ '*! : 

J.-4 

2=1 NT 

( h 

2 

;i 


1 60 

IF 

o 

J 

L< 

0 THEN 15 

:@ 








165 

0= 

0 

OR 

«... : G0SUB 


94 : 

p 

r?j,;p 

IN 

y 

H 2 } y 

C 4 


96 

0- 

IN 

T < V2 ) #4 0 .. 

o 

■RE 

T 

! 

URN 





180 

0= 

N 

0T 

0 : 0=0 Hi 

!D 

L- 

H 

OSUB 

19 

4 

: POKE 

i 


NT 

<:h 

2 •' 

+SC+960-- ’• 

i (| i 

2 > $ 

4 

0 , n : R 

py 

u 

ou 

: : » 


194 

TP' 

0 

=*.0 

THEN 0=5 

<6 

• p e 

y 

URN 





195 

OH 

0G0 

TU 201.. 26 

i2 

.. 20 

i3 

, 2@4 , 

20 

5 

, 206,2 

07 



08 

, 2 

09.. 210.. 21 

1 

,21 

Cm 

■"> 1 o 

2 1 

4 

,215 


201 

0~ 

12 

6 

•• RETURN 









2Q2 

0= 

12 

4 

: RETURN 









203 

0= 

del 

6 

: RETURN 









204 

0= 

12 

3 

: RETURN 









205 

fì~ 

97 


: RETURN 









206 

0= 

•-> cr 

5 

: RETURN 









207 

o~ 

23 


: RETURN 









ir-'yy 

0= 

10 

O 

^ RETURN 









209 

0= 

12 

r’ 

: RETURN 









210 

0= 

22 

5 

: RETURN 









211 

0 = 

“i C.T 

d-J 

ì 

• RETURN 










0= 

98 


^ RETURN 




. 





2 1 3 

0= 

25 


: RETURN 









214 

0~ 

25 

4 

' RETURN 









215 

0=s 

•“> v 

imm tmm 

4 

: RETURN 










43 



2 4 9 R E M $ : M & :*?«• $ $ :*!•: T! E M 0 $ * $ $ $ ^ $ $ $ $ 


25@ PR I NT " C HOME 3 " ; CX~ 1 
251 POR Q-0 TO 2# ir ST ?:;: ' ,,;: 
: h=Q 


C;r-~ j M K: i : ) -j H : yt-inpIS 

i( 04 : V-'E, 5*SIH02> 


1— u 

GOSUE 1 1 0 

253 

NEXTQ 

255 

PQR !-j~:0 “f! 

B 12@ : NEI/!' 


: H2--H0 

cr 

i:.;. • j •* 

POR p=SC ' 

258 

J. i ! .i. i 

259 

F=.-:F+128 

260 

POKE P .. F : ! 

270 

C -7 ■ s=2 : H< 

O IA 

pop Q~Q T| 


03/C) ; H-O 


V“ ::: S I N ( Q > $E/P 


200 GOTf* - ;, 90 


44 



Nevicata 


Bianchi fiocchi di neve scendono lungo il 
vostro schermo fino a che non premerete il 
tasto asterisco *. 

Non sara' molto utile, ma e' senz'altro 
piacevole da guardare. 


10 PR I HT " [ CLEFIR :} " 

20 SL~IHT(2000*RNIK 1 > > •' IF 8L>2@23 THEN 
20 

30 IF SLC1024 THEN 20 

40 POKE SI. .• 42 ; POKE SL+54272.. INT < 15#RND< 
1 ) > 

50 GEI K* 

60 IF THEN 80 

70 GOTO 20 
80 FRI NT" L OLEARI " 

90 PR INT "PREMERE <Q> PER FINIRE" 

110 PR INT "PREMERE XR) PER RICOMINCIARE" 
120 GEI HV$ 

130 IF HY$*"" THEN 120 
140 IF HY$="Q" THEN 170 
150 IF HVf="R" THEN 10 
160 GOTO 120 
170 END 


45 



Bozzetti 


Ora siete in grado di disegnare sullo schermo 
del vostro televisore linee, barre, 
diagrammi, cartine e qualsiasi oggetto vi 
passi. per la mente. 

Usate la vostra tastiera come se fosse una 
penna e il video come se fosse un foglio di 
carta . 

Le linee da 40 a 340 accettano i comandi di 
movimento in alto, in basso, destra e 
sinistra rappresentati rispettivamente dai 
tasti U, D, R e L. 

Nessun altro tasto verrà' accettato. 

Le linee 400-410 produrranno il disegno. 


10 

FRINÌ 

"CCI 

_EfìR3 " 

20 

1 02 

4 


40 

GEI K 

$' 


50 

IF K$ 

zr . 11 11 

THEN 40 

60 

IF !<* 

"!J 

" THEN 80 

70 

GOT O 

100 


80 

IF X- 

40> 

1023 THEN 

98 

GOTO 

400 


100 

IF K$ 

:="D 

" THEN 12i 

110 

GOTO 

VMM 


120 

l'F X+40C 

2023 THEN 


46 



139 GOTO 4@0 

208 IF !<:*•= "L" THEN 220 

210 GOTO 300 

220 I F < < X-2 ) /40 > = I NT < ( X- 

230 IF X K.1024 THEN 49 

240 X*X-1 

25Gi GOTO 400 

300 IF !<$=•- "R" THEN 320 

310 GOTO 40 

320 ì F < < X- 1 > /40 > = I NT < < X- 
330 IF X+ 1 >2022 THEN 40 
340 N=X+ 1 

400 POKE X+54272, 1 

419 POKE X • 8 1 

420 GOTO 40 


2 i 1- ' 4* 0 ) THE. N 4 0 


1 > /40 > THEN 40 


47 



Life (cellula) 


ai «h 


ai fi 


fi ai *h ai 












ai 


H TJ 


C 4J *0 H 












c 


fi 


3 0) v 
















> 














n ai 


0 












ai 


■H +J 


% -0 -H o 












o -» 


C (0 


fi jC c • 

<M 

h~ 



z 

o 




z 


a 3 


•H -»J 


uso 

jV; 

•! — 



cd 

X- 



J__i 



0 * rH 

■ 

c 


4) -H 4> IO 41 

LO 

i— 




w 



! — 

z 


3 H 

-H 

ai ai 


•0 0 -H b -o 


m y m 



o 

iV 



•__! 

il 


h ai 

c 

C fi 


*4 > *4 *4 H 

Ili 

Lii 



i — t 

X 



o 



•w u 

0 

o ai 


<0 41 «0 > 





N 





c. * 


> 

-H 

-H u 


3 +J ® 

o 




» — t 

-J 



z 



d) 

N 

n a 


0) 01 fi rH 

Li 

iT: tH 



fjj 

LlI 



z 

•k+ 


-H 

fi 

■H Oi 


■H fi 3 


® H 



o 

i~{ 



H 

P-l 


T3 

M 

41 «0 


>4 fi 

z 

q 



fi 








ai 

0 u 


fi ai 

« — ! 

tH Li.. 



t t - : 

|_L_j 



o 

"7" 


0 

c 

a 


hj -4 +j ai 

o 









UJ 

i 

rH fi 

ai 

fi 


4J H C 4J 


p: ? c» 



Cl : 

fjj 



¥t 

x: 


-H 

Ot-H 0 


3 0 C fi 4-1 

! 



-i--! 





L : -: 

i— 


c 


•o c 


a > fi 3 o 

)*T~ 

j_0 X* 


n 

;X 

•T* 





i] t 

0 

ai 

c 

■ 

C +J 0"D 

i — r 

O tH 

CO 

! l 

X 5 

! — i 


o 


z 


(0 «H 

fi 

<4 IO 

fi 

**H 0 

o 

1* :m - t 

PL 


j-.-. 




td 

a 

44+ 

•H 0 

u 

rH 

c 

fi *4 

! — f 

• • PP 

* !1 



o 


■frf 

_i_ 

z 

PÒ 

3 u 

ai 


3 

h o ^ a 

• — ! 

! .£; j 

CJ 

rr 

X 

r — 


PQ 

i 

li 


fi 

> 

41 4l 

c -H -1 T3 

li! 

CO 


r,\ 

— .j 

H*C 





c 

•H fi 

■H 

u > 

aixj fi c -u ai 

ij; 

r— : O 




X» 


\— 

z 

t-H 

UJ 

fi c 

XJ 

fi 

0 

IO IO 4-1 

UJ 

CO O 

Tf" 

-kf 

H-i 

X 


x> 

o 

-- 

-J 

3 


4J 01 


4J -h ai 

-J 

C*ii • • 

6i 

P-ì 

Uj 



Ù.. 

i — 




ai 

fi £ 

u 

ai oh n ^ 

o 

f ’! ri- 

il 


X ! 

-J 



! — 

o 


-H 

H 

0 u 

ai 

4 4 4) 4 h 

L-J 

Ili 

C\i 


pi 

i— { 


t— { 



L.» 

fi V 

rH 

a 

a fi k *h a o 

z 


“y* 

sT; 

Cj 




Li.. 

r> 


fi 

ai 

fi ai 


m ai *0 fi > 

fc~ 

UJ i — 


P-. 

OC 

X 


c? 

z 

P-i 

-k*r 

fi ai 

■o 

fH H 

0 

jC 

-fc— 

Ci 

■-rH 

-. 

H" 

co 


rt- 

il 

'•_•* 

s—M 

fi c 


3 

u *h u ai 

« — 5 

O C ? 

jj 



i 

z 

C- 


¥r 


u 0 

-H 

01 rH 

fi 

C 4) 41 0 43 

X 

0_ « 1 

•t— i 

fij 

*-• -i 

z 

Ci 

T~j 

L_» 

j 

•kf 

0) "H 

fi 

4-1 H 

**H 

0> U 

Cl- 

• . j — 

“r- 


z 

r- 

h- i 



X 

j 

0 N 


41 41 

*4 

o h ai 


1 — E j— • 


'X. 

j 

XI 

f’J 

W 

•Hf 

UJ 

: 


ai 

> u 

ai 

V V 0 41 


tH 

T-i 


T" 

i— ì 

;T“ 

i 

p 

j 

c* 

an 

TJ 

0 

4J -H C4JH 

fi.* 

-• Q: 

li 


i-H 

X 

X. 

co 



i 

0 

41 -O 41 

«■o « O-H 3 

Zi 

*£'> O 

-rH 

’r—i 

L>- 

X. 

co 

e* 

u. c ? 

u. 

ùi: 

> 

u 

•H 

fi 

c ai a 3 «H 

o 

CO Ll 


P-i 

LL 



C.5 

j — s co 

h— i 

-k 

ai 

(J ■H H 


■H C 4 0>H 












H * 

3 

o ai 

c 

3 -h «h ai ai 

t-r i 


;T'. 

X- 

X : * 



;T". 

c? 

ijj 


H H 

fi > TI 

3 a h b « u 





C*5 5 



co 

rf 

LO 



3 



6@ C=C+1 
70 GOTO 39 
80 C=€- 1 : L=9 
90 POR X=1 TU C~ 1 
100 L=LEH(E$<K> > 

1.1.0 NEXTX 

1 20 XI =11 -C/2 

130 Yl=33-L/2 

148 FOR X = 1 TO C 

150 FOR V=1 TO LEN ( < X ) > 

160 ÌF M I Dl : ( Bt ( X > .* V .• 1 > O " " THEH FKX1+X, 
Vl+V>-1 :P=P+1 
170 NEXTV .• X 
200 F'R I NT •' PR I NT : PR 1 NT 

2 1 0 PR I NT " i: CLERR 3 GENERRZ I ONE : " G , " POPOLRZ 
IONE : "P 


215 X3=24 : 
220 G=G+1 

l .1 ..... 1 il .f .... 

t r y ■ . , *4 — 1 • *r h 

1 : R=@ 


225 FOR RR 

=0 Tu 1 : GOSUB 

11004 

JEXTRR 

230 FOR 

••"l i Ci nn T kIT 

XÌ-1 TO X2 



250 FOR V= 

VI— 1 TO V2 



253 IF R<X 

.. V > =2 THEN HO-: 

, v ;.ì =0 : 

GOTO 278 

256 IF R<X 

,.V)=3 THEN fKX 

, V> = 1 : 

GOTO 261 

268 I F fì < X 

.. V ) 0 1 THEN 27 

0 


261 FRI NT 

TfìB< V-20> ; 




262 

IF X<X3 THEN 

■„'* — r'*i 


264 

IF >0X4 THEN 

Vi.*t V 


266 

IF V<V3 THEN 

li il 

T Ni — T 


268 

IF V>V4 THEN 

il .i — fi 

T 4— T 


279 

.NEXTV..X 



V'4'4 

i— —• 

X1=X3 ; X2=X4 : V 

1 =V3 •' 

V2=V4 

301 

IF XI <3 THEN 

X 1 =3 : 

I9~--l 

30F! 

IF X2>22 THEN 

ci : 2 

2 ; 1 9=~- 1 

305 

IF VI <3 THEN 

VI =3 : 

19=- 1 

307 

IF V2>6.8 THEN 

V2=6 

J-! ; '[ '“4 1 


49 




R-0 



500 

POR X=X 1 - 1 

TO X2+ 1 


510 

POR V~ V 1 -■ 1 

TO V2+1 


520 

i;> ; 0 



530 

POR I=X 1 

TO X+l 


54@ 

POR J--V 1 

TO V+ì 


550 

IF R<I, J>= 

1 OR R < I 

, J ) =2 THEN C=C+ 1 

5£0 

NEJ-iT J , I 



5S0 

IF R ( X .. V > =• 

Q THE!"! 6 

1 0 • 

590 

IF CC3 OR 

04 THEM 

R < X .« V > =2 : GOTO 600 

595 

P=P+1 



SBB 

GOTO 620 



610 

T F 03 THE 

N ,R<X,V> 

=3 : P~P+ 1 

»... ,^{ „*f 

mi.:: vj! i v 



r #> j £'[ yi 





X 1 =X 1 - 1 : Vi 

:!. ■ , :: 1 ci z:1 X 

2+1 •' V2=V2+ 1 

640 

GOTO 210 



65 @ 

END 



1 000 

V=54296 : H .1. 

5*4 7 3 ' L 

1=54272 : MI =54276 : fi 


1=54277 ■' Sì 

-54278 ; P 

H< 1 >=54275 : PL< 1 >=5 


A 07 1 

J, T CL i '-«* 



1010 

H2=54280 : L. 

iL! 5 1 "!' 2 i y ■ 

M2=54283 : R2=54284 •' 


S2=54285 : P 

H< 2 >=542 

82 : PL (2 > =548 1 

1 020 

H3=542o ( ■ L. 

3=54286 : 

143=54290 ■' R3=54291 : 


83=54292 ; P 

H<3>=542 

89 : PL 03 >=54238 

1 030 

POKE V, 15 : 

POKE fì 1 , 

9 -• POKE R2 ,• 1 3 : POKE 


03 30 : REM 

# & .4; M 4»; R 7 T H r !< •£• P F P fì V # M 


$ $ jljl* : à; jljlj 

1 835 POKE S 1 , 9 ■ POKE S2 , 8 ■ POKE S3 , 37 : REM 
#*****:4!8UNSTfi I H ■!:•: RELEfiSE 

nji: A* A,‘ *A: :Ai 

1037 RETURN 

1 640 POPE H 1 , 72 : POKE !... 1 , 1 27 
1050 POKE H2 , 72 : POKE L2, 127 
1060 POKE H3, 144 POKE L.3.-255 
1 07@ POKE PL ( 1 > .. G&2 : POKE PH < 1 > .. 0 
1 080 POKE PL < 2 > / 6*2 : POKE PH < 2 > !• 0 


so 



1 099 F'OKE PL < 3 > .. 0*2 ' POKE EH < 3 > .. @ : I F F'v'= 1 
THEH 1 1 09 . 

1 999 • PR I NT TRE < 1 0 > " *:+*#*********L+**^*:*. : ** " 

; pf.> J j-,jT 

1100 POKE W1.-33 ; P0KE W2 , 33 : POKE 03, 65 
1110 FOR QQ=0 IO 0*10+55 : NEKTQQ 

1 1 29 POKE M 1 , 0 : POKE W2 " 0 : POKE 03 , 0 

1130 RETURN 



51 


Topolino 


Ecco un altro simpatico esempio di animazione 
e di grafica ad alta risoluzione. 

Viene creato lo aprite del topolino Michele 
che attraversera' ballando il teleschermo 
accompagnato da un ritmo di sottofondo. 


1 REM MICHAEL "S DANCING MOUSE L* 



POR 

0 

TO 

24 

■ POPE 542 

7 v 4-V 

, O • NEXT 


5 

5=54 

./ |*' j./ 

: POPE 

3+24, 1 5 : F 

OPE 

8 , 220 ; F 

OPE 


S+ 1 

68 

: PO 

<E 

S+5, 15: PC 

PE S 

+6 .. 2 1 5 


10 POPE 

S4- 

r .• j. 

20 : 

POPE S+8, 

1 00 : 

pupe b-+ 

12, 


15: P 

OKE 

3+ 

1 3 • 

2 1 5 




15 

PRIH 

t 11 1; 

:le 

RR 1 


: POP 

E V+21, 

1 

2@ 

F OR 

o 1 :r: 

1 elei 

t*~i IJ 

IJ 1^1 

TO 12350: 

READ 

Q1 '■ POP 

E S 


1 , Q 1 

: NE 

fy i 






25 

POR 

S 2 

1 23 

rz m 

■Jc. 

TU 12414: 

RRHIJ 

Q2 : POP 

p C; 


2 .■ Q2 

: NE 

xt 






30 

FOR 

."!• "•* 

12416 

TO 1 2478 : 

9f&T\ 

i 03 : POP 

:e s 


3 , Q3 

: NE 

V T 
« '. » 






35 

POPE 

v+ 

39 .* 

15 : 

POPE V+l, 

68 



40 

PRIN 

T TRE ( 

16 E 

i ) " C B I RNCC 

ili RM THE BHNC 


INO 

MOLI 

SE ! 

CCE 

1..ESTE.1 " 





45 P-192 

58 POR K=0 TO 347 STEP 2 
55 RK-'I NT < X/256 > • LX=X~RX*25 6 


52 



60 

POK 

E 

i if i 

, !... 

X : P 

DICE V 

+ 1 6 

, RX 






70 

IF 


i 

92 

THEN GO 

C;j 1 1:> 

200 






•-> c:r 
i -J 

IF 


i 

93 

THEH GO 

SUB 

300 






80 

POKE 


04 

0,P 

: FOR 

y~ ;! 

TO 6 

0 : NEHT 




85 

P=P 

+ 1 


t 

R> 

194 T 

UCM 
1 ! ! 1 '! 

p :::: 1 Q 






90 

NEH 













95 

EH» 













1 00 

DATO 

3 

0 , 

0, 1 

20, 63 

, 0 , 

252, 1 

,Z„ \ ‘ , 

1 29 , 

ri*.;! 

54 

i 

, .1. 


2 i , 

1 2 

9 

, 2 

54 , 

127, 1 

89 , 

254, 1 

ri. i , 

O ir 
•_.* •...* , 

ci 

54 


101 

DAT 

fi 

6 

3 , 

ci 5 5 

.• 252 , 

31, 

l< Imm 

48, 

3, 13 

i 

, 1 

92 


, 1 , 

—i »::: 

5 

! 

2g , 

3 , 1 39 

, 1 9 

2 , 1 , 2 

31, 

1 23 , 

1 

, ci 

55 


, 0 













1 02 

DATA 


1 , 

255 

0 , 0 , 

124 

... 0 .. 0 , 

25-* : 

■ , 0 , 1 


19 

9 , 


32 , 

;•:> , 

i 

j. 

i 

, 22 

4 , 7 , i 

, 1 9 

2 , 1 , 1 

92 , 

0 , 3 , 

1 

92 

, 0 

103 

DAT 

H 


0 , 

e, i 

20 , 63 

, 0 , 

252, 1 

2 1 ** , 

129, 

2 ! 

54 

1 


«».. • •• 

12 

9 


54, 

127, 1 

89 , 

254, 1 

c. r , 

255 , 

[zi 

54 


1 04 

Il fi! 

l "1 

6 

3 , 

2:55 

-“i c; •-> 

3 1 , 

22 1 , d 

4o , 

.. 22 ! 

i 

1 

, J. 

q •;> 


, 1 , 

-•i r.~ 
r.E 

i!j 

, ì 

••HI *•••• J 

ir 

•.j , t *:„ • J • J 

, 19 

2 , 1 , 1 

95 , 

123, 

i 

,2 

o i 

105 

DAT 

H 


•! 

255 

, 255 , 

0 , 1 

24,8, 

0 , 

‘54 , ri 

4 

1 , 

19 


3 , 0 

- 7 


i 

1 23 

, 7, 0, 

204 

, 1 , 12 

3, :! 

. 24 , i'“ 

.. 

1 

8 , 


56 













106 

DATA 

3 

0 . 

0 , 1 

20 .• 63 

, 0 , 

( •{ 

«:i r‘ , 

1 29 , 

ci. 

54 

i 

.i j. 


c.. r , 

1 2 

'9 



i :: v " :4 , i 

X 1 J. 

89 , 

r.-r i -j 

cl ì , 

255, 

254 


107 

DAT 



3 , 

255 

,252, 

31 

~j\/ 1 ( *::> 

48, 

3 22 

i 

-1. 

, i 

92 


1 

,--i 

•;i c:: 

1 5 

i 

.• .1. 

34, 

3, 139 

, 20 

4.7 ì, 1 

99 , 

1 52 , 

1 

J. 

•”> rr ir 
, * Ì-..IJ 

108 

DAT 

fi 

! 


55. . 

224, 1 

, 25 

2 , 0 , 3 

•“> c: 

«4 , 0 




1 09 

DAT 

li 

r 

T 

4 , 0 

, 204 , 

1 4 , 

0 , 248 

ir.- 

, 

i , 0 , 1 

j 

2 , 

ii 


2 - 0 

.. G 


68 

, 0 , 

i 








200 

POK 

i::r 

u. 


+4 

, 12 

9 : POK 


+4, 12 

O • ]** 

:ETURH 



500 

POK 

ir 


+ 1 

i t j 

29 ; PO 

j-’F 

S+ 1 1 , 

1 Zi 

: EET 

j ] 

RH 



53 



Autolab 


Dopo aver creato un labirinto basato su pa- 
rametri casuali, in seguito alla pressione di 
un tasto qualunque, il computer vi mostrerà' 
la folle ed interminabile corsa di una pal- 
lina lungo tutto il labirinto. 


1 09 D I M Fi < 3 > : fi < 9 > =2 : fi < 1 > =-80 ; fi < 2 > =-2 : fi 3 

> =80 

1 29 !4L= 1 02 : HL-32 : SC= 1 024 : fi=SC+8 1 
148 PRIHT" C OLEARI CGIflLL03 CRVS3 " ; CHR*< 142 
: F OR 1 = 1 IO 22 



210 POKE fi, 4 
220 J= I NT < RND < 1 > *4 > : X= J 
230 B=fi+FKJ> : IF PEEK < B > =WL THEN POKE B, -J 
: PURE fi+fi J ) /2 , HL : fi=B ' GOT 0 220 
240 J=<J+1)#-<J<3> : IF JOX THEN 230 
250 J=PEEK<fi> : POKE fi, HL : IF J<4 THEN fi=fì- 
FK J> : GOTO 220 

300 PRINT" LABIRINTO PRONTO! PREME UN TfiS 
TO. " 

310 GET C$ = IF 0$="" THEN 310 
1000 POKE fi, 81 : J=2 

1020 B=fi+FKJ>/2 : IF PEEK < E > =HL THEN POKE B 


54 



, 8 1 : FOKE fi , HL. : fi~B : J* < J+2 > +4* < .J> 1 > 
1 638 J~ < J- 1 4# J~0 ) ^ GOT u 1. 028 



55 



* * 


3. Gestione delle stringhe 


* * 


Divisione in sillabe 


Questo utile programmino dividerà' in sillabe 
qualsiasi parola voi digiterete. 


200 

FRI 

NT " II CLEflR 

]" 

210 

S= 1 

: primi 


220 

INF 

UT " VOGHE 

0L0" ; : F'R I NT 

yy t w 

IF 

fl$="0" TH 

EH END 

240 

IF 
-> { 

S>L..EN < fl$ > 

(a 

THEN FRI NT" [ 

250 

C, Am 

Va 

H I ET < Fif .. S 

1 ;■ : GOGNE 460 

260 

IF 

H~0 THEN 

430 

270 

y* = 

M I B$ ( fli .• S 

+1,1 ) : GOSUB 4 

280 

IF 

fi=@ THEN 

360 


290 IF >•;$=" I" THEN 320 

300 i f m i :of ( m- , s , ì > = " i " or m i m- < m , s , i > - 

"U“ THEN 430 
310 GOTO 440 

320 K$=MID$<Rf , $+2, 1) : GOSOE 460 

330 IF S>1 THEN IF MIDITFl*, S-l , 2> = ,, QU" 

HD H~- 1 THEN F'R I HTM I B$ < fl$ , S , 2 > ; : S=S 
2 : GOTO 240 

340 IF fl=-l THEN 440 
350 GOTO 430 

360 IF S+2>LEN<fì$> THEN 450 
370 K*~MIIi*<fl$, S+2, 1> : GOSUB 460 


56 


+ ID 



380 IF H“— 1 THEH 440 

390 I F M I H$ < fì* , S+l , 1 > =M I B$ < fi* , 3+2 , 1 > THE 
N 458 

400 fì 1 $=M I m (. fi* , 3 + 1 , 1 > : I F R 1 *= " 3 " OR fì 1 $ 
“"il" THEH 440 

410 fì2*=MIB*<fì*/ 3+2 .• 1 > : IF fì2*="R M OR fì2* 
~"L" OR fì2*="H" THEH 440 

420 GOTO 450 

430 PR I NTM I D* ( fi* .• 3 .• 1 > : S~S+1 : GOTO 240 

440 PR I NTM I B* < fi* , 3 , 1 > ; M : S=S+ 1 : GOTO 24 
0 

450 PR I NTM I B* ( fi* , 3 , 2 > ; " ; : 3=3+2 : GOTO 24 
0 

460 R~NT” ,, R" OR K*="E" OR " I " OR " 
0" OR y,$~ " IJ " : RETURN 


57 



Invertitore di parole 


Digita una parola qualaiaai od un numero e 
acoprilo acritto alla rovescia aullo schermo. 
Alla fine il computer attende che tu prema un 
qualaiaai taato per ricominciare. 


10 PRINT" [ OLEARI ,r 

20 INPUT "PAROLA, • , HUMER0 : " ; N$ 

30 IF N$=" " THEN PRINT" C2 UP.I" : GOTO 20 
35 PRINT" t OLEARI " 

4@ L=LEN<N$> 

45 PRINT "ORIGINALE : ";N$ 

50 PR I NT " ROVESC I ATO •' " ; 

60 POR V=L TO 1 STEP -1 
70 B$=Miri$<N$, V, 1) 

80 PR I NTB$ ; 

90 NEXTV 

100 POR K=1 TO 10: PRINT NENT 
110 PRINT "PREMI UN TASTO" 

120 PRINT "PER CONTINUARE" 

130 GET f\$ 

140 IF A$=" " THEN 130 
150 B$= " " 

160 GOTO 10 


58 



Parola d’ordine multipla 


Questo e' un sofisticato sistema di parole 
d'ordine che permette l'accesso al programma 
ad alcune persone, ognuna delle quali avra' 
un personale numero di codice ed una 
corrispondente parola d'ordine. 

Ogni utilizzatore deve immettere il suo 
codice e quindi la sua parola d'ordine. 

Se il numero e' sbagliato la parola non 
potrà' mai essere esatta. 

Se invece il numero e' giusto ma *la parola 
non corrisponde, niente da fare egualmente t 
Puoi aggiungere altri utenti autorizzati . a 
questo programma scrivendo nuove linee nella 
subroutine posta fra le righe 300 e 340. 


10 PRIHT" CCLEflR] " 

20 INPUT “DIGITA IL TUO NUMERO PERSONAL 
E"; Ufi 

30 GOSUB 300 

50 INPUT "PAROLA D'ORDINE" ; P$ 

60 IF PS*"" THEN F'R I NT " C 2 UP3" : G0T0 50 

70 IF P$*PW$ THEN 110 

90 FRI NT "DATI NON ACCETTABILI" 

100 END 

110 PRINT"0K! IL CODICE E ESATTO" 



120 FRI NT "PUOI ACCEDERE AL PROGRAMMA PRO 
TETTO" 

130 END 


300 IF 

Ufl= 12345 

THEN 

PW$= 

"ZEBRA" 

310 IF 

UH ”23 45 fa 

THEN 

PW$= 

"COBRA" 

320 IF 

UH 3 4567 

THEN 

PW.f= 

"TIGRE" 

330 IF 

UA=45678 

THEN 

PU*= 

"CONDOR 

340 RE 

TURN 





60 



Risultati in cornice 


Questo programma permette di ottenere una 
piacevole presentazione dei risultati in- 
corniciandoli in una 'scatola' lampeggiante. 


10 PRIMI" CCLE ARI " 

20 PRIMI "DIO Ufi UM MOME ED UN PUNTEGGIO 

li 

30 PR INI "LUNGO RL MASSIMO 10 CARATTERI" 
40 PRIMI" INCLUSI GLI SPAZI" 

50 PRIMI: INPUT jf 

60 IF LEM (II) >10 THEM PRIMI "TROPPO LUNG 
0 " : GOTA 50 

70 IF LEM (TU' -OS THEM PRI NT "TROPPO CORTO 
" : GOTO 50 

900 PR I NT " C CLEAR J C 8 DOWN 3 " ; CARI < 5 > ; CHRf 
( 1 28 ) 

9 1 0 PR I NT TAB < 1 5 > ; CHRf (111); 

920 FOR L=1 TO 1 0 : PR I NTCHRf ( 1 63 > ; : MEXTL . 
930 PR I NTCHRf ( 1 12) 

940 PR I NT TRE ( 1 5 ) ; CHRf < 1 65 ) ; 

950 PRI NT TRE (14 ) ; Tf ; 

960 PR I NT TRE ( 26 ) ; CHRf ( 1 67 ) 

970 PR I NT TRE ( 1 5 ) ; CHRf ( 1 08 ) ; 

980 FOR L= 1 TO 1 0 : PR I NTCHRf ( 1 64 ) , : MEXTL 
998 PR I NT TRE ( 26 ) ; CHRf ( 1 86 ) 


61 



1000 PRINTCHR$<144; 
1010 PR I NT CHR:f (159; 
1100 GET K* 

1110 IF K$a"" THEN 
1120 CLR 
1130 GOTO 10 


1100 


62 



Messaggio segreto 


I messaggi segreti possono essere molto 
divertenti t 

Spesso sono formati da codici dove le lettere 
sono sostituite da numeri. 

In questo programma, il computer fa proprio 
questo: associa un numero di tre cifre ad 
ogni lettera dell'alfabeto. 

Usando questi numeri, si possono mandare 
massaggi segreti assolutamente indecifrabili. 

E' molto improbabile che numeri uguali siano 
associati a lettere diverse, dal momento che 
i numeri disponibili vanno da zero a 999. 

Fai attenzione, quando batti il programma,' di 
separare con virgole le lettere nella linea 
30. 

La linea 90 fa scrivere i risultati in due 
colonne. 


1 0 PR I NT " C CLEfìR 3 " • REM PUL 1 2 1 fi SCHERMO 
20 Z-RNIK-TI > 

30 DRTfi R , B , C , D , E, F, G , H , I , J , K , L , M , N , 0 , P 
,Q,R,S,T,IJ, , '.M'J,K,V,2 
40 FOR N=1 TO 13 
50 C= I NT < 1 000*RND < 1 > 



60 READ L* 

70 D= I HT < 1 0003KRND < 1 > > 


80 READ J$ 
90 PRINTL$; 
100 NEXTN 
110 GET K$ 
120 IF K$= H " 
130 RESTARE 
140 GOTO 10 


•m::, J$; " " ; D 

THEN 110 


64 



Ordinamento alfabetico 


All 'Inizio vi verrà' domandato quanti 
elementi numerici o alfabetici volete mettere 
in ordine alfabetico. 

In seguito la visualizzazione avverrà' in 
gruppi da 20 elementi. 

Premete il tasto (c) per continuare la 
visualizzazione. 


10 


20 

30 


40 

50 
60 
70 
80 
80 
;! 00 


PR I NT " C CLEflR 3 C 2 DOWN 3 l RVS 3 ORE I MfìMENT 
0 fìLFfìBET I CO [ RVOFF 3 " 

pp T KIT 

PR I NT " - 1 NTROBURRE 0 PER TERMINARE IL 
PROGRAMMA" 

PR I NT 

PR I N T " NUMERO B I VOC I ", , 

INPUT N 

IF N-0 THEN 330 
DIM fl$ < N > 

POR 1=1 TO N 

pr ini" voce" ; l ; 

TMpllT pt-.Tì 

A ! Il I I H'- •. J. •• 


110 MENTI 

1 1 5 PR I NT " [ CLEflR 3 E R I GHT 3 " 
120 M=N 
13@ T---M/2 


65 



131 M-IHT<T> 

140 1F M=0 THEH 280 
150 K=N-M 
160 J=1 


1 88 

L=I+M 


1 90 

IF R«IK==R 

$<L) THEH 250 

208 

T I > 


210 

fì$<D=fi$<L) 


220 

PS »: L ) ~~ T ‘$ 


238 

I = I-M 


248 

IF I>=1 THE 

H 188 

250 

J~J+1 


260 

IF J>!< TI-IEH 

1 30 

270 

GOTO 170 


280 

FQR 1=1 TO 

H 


IF 1/200 IH 

T< 1/29 > THEH 298 

284 

PRINT" r.RVS'1 

il • 

<C> PER CONTINUARE 

285 

GET C$ ; I F C 

$0"C" THEH 285 

290 

PRINTfìSC I > 


300 

HE/T I 


310 

PRINT 


320 

GOTO 40 


330 

END 



66 



Striscia scorrevole 


Inserite nel vostro calcolatore una frase per 
ogni richiesta di input (il numero totale lo 
stabilirete voi) e la vedrete scorrere da 
destra a sinistra al centro del vostro 
televisore come avviene per le pubblicità' 
luminose di molti negozi. 


10 

POK 

E 5328 1,0: RE 

] MTCHR •$ < 5 ) 

20 

FRI 

MICHE* < 147> 


3£i 

T KJP 

{ rr 11 1 "»! 1RNTF !.. 

]' upp' II I I j-.JPj iT Vi II 'I l •• ; r 

40 

DIM 

fì’4KE> : POR !■’• 

-1 TO E 

5@ 

INF- 

! !T h't ( K ) ; fi $ ( 

K > = H 




" f R* ( !< > : MENTI 

1 00 

FRI 

HTCHR$< 147) 


110 

POR 

F~~ 1 TO E 


1 20 

F OR 

1-40 TO 40+ 

LEMFHKP)) 

1 30 

PR I 

MICHE* < 19/ P 

rimi" ne »owH] " ; tab< 


40 ) 

; M 1 D* < R* < P > , 

, 39 ) ; •• " 

140 

FÒR 

J = 1 TO 1 00 : 

MENU, I 

150 

ned: 

TP 


1 60 

GEI 

S* • If S$= ,M ' 

THEM 110 

170 

end 




67 



* * 


4. Musica 


* * 


Beep 


Puoi far suonare il tuo computer a comando. 

Il comando FOR/NEXT delle linee 20 e 90 
provoca la ripetizione automatica del "bip" 
per dieci volte. 

Ovviamente puoi cambiare il numero degli 
squilli sostituendo il numero 10 nella linea 
20 . 

La linea 30 fa apparire la parola "BEEP" 
sullo schermo. 

Le line 40 e 50 fanno durare il singolo 
suono . 


10 

PRINT' 

' C OLEARI " 

: REM 

PULIZIA Si: 

THERMO 

20 

FOR L= 

= 1 TO 

10 




30 

PRINT' 

'BEEP" 





40 

PQKE 54296.. 

15 




50 

PQKE 54277, 

190 

: POK 

E 54278,248 

: POKE 5 


4273,51 





55 

PQKE 54272, 

37 ^ f 

: '0KE 

54276, 17 


60 

FOR T= 

= 1 TO 

300 

: NEH 

TT 


1 00 

POKE 54276, 

0 : P( 

:«ke 

54277,0: POKE 

E 54278 


, 0 






110 

HENTL 







68 


Piano 


Trasformate il vostro Commodore 64 in un 
formidabile pianoforte a piu' ottave e 
lasciate la vostra fantasia libera di 
spaziare tra le note musicali per creare 
tanti piacevoli motivi. 

Il programma si spiega da se' e vi permette 
inoltre di scegliere la forma d'onda del 
segnale in uscita. 


10 

REM PIENO 





1-00 

PEI NT "[GL 

EHRHEVS! 

[RI GHT ] 

[RI GHT 3 1 


r p r qht ;; 

[RI 

GHT] CR 

IGHT] ! 

[RI 

GHT] [ 


RÌGHT] ! 

[RI 

GHT.1 CR 

IGHT] " 



110 

PR .1 NT " C RV 

S3 

[RIGHI I 

[RIGHI" 

] 1 

[RIGHT 


;j [righi j 

[R 

IGHT] ! 

[ R I GHT 

] [R 

IGHT] 


! [RI GHT] 

CR I GITI J " 




120 

PR I NT " [ RV 

SI 

[RI GHT! 

[RI GHT 

3 ! 

[RIGHI 


] [RIGHI! 

[R 

IGHT] 1 

[RIGHI 

] [R 

IGHT] 


! [RI GHT] 

1" p 

!.. 1 •. 

IGHTJ " 




130 

PR I NT " [ R V 

II 

sì 

! ! ! 1 

! ! 1 

1 ! 

! 1 ! 

1 40 

PR I ni " r i:v 

H 

S3Q 

] m s F ! R ; 

T ! V ! U ! I 

! 0 ! P 

! 0 1 * 1 t 

150 

PR I NT " -SP 

OZI 

0 PER Fi 

GGULU U 

POL 

IRONIE 


n 


69 



160 FRI NT ""FI 

II 


ir *:? ••• 

! I 


Otri r "7 T i* 

!_ I — L_ k*. j. •„ 


n.iE oTiftypi 


170 PRINT"'F2,F4,F6,F8" FORMA D'ONDA " 
180 FRI NT "ATTENDERE PREGO " 

190 3=54272 : DIN FC26> : D I M K<255> : Pl*l 
195 'v'L=54296 : POKE VL.. 15 
280 FOR 1=0 TO 21 : POKE S+I,@:NEXT 
210 FI =7040 : FOR 1 = 1 TO 26 : FC27-I >=F1*5. 8 
+30 : F 1 =F 1 /2 T< 1 / 1 2 > : NE/T 
220 K$=" Q2W3ER5T6V7U I 9OOP0~*£ t" 

230 FOR 1 = 1 TO LEN < K$> : K ( ASC < M I B# < K£ ,1,1 
>>>=! =NEXTI 
240 PR I NT " [ UP 3 


250 AT= 1 : DE=9 : SU* 1 5 ■ RE=9 : SV=SU* 1 6+RE : AV= 
AT*16'+DE WV= 1 6 : W=0 : M=1 : 0C=4 : HB=256 : Z 
=0 

260 FOR 1=0 TO 2: POKE S+5+I*7, AT*16+BE : P 
OKE S+6+ I *7 , SU* 1 6+RE 

270 POKE 8+2+1*7,4000 AND 255 : POKE S+I*7 
, 4000/256 : NE/T 

300 GET Ai’: if AT=" " THEN 300 
3 1 0 FR=F < K < ASC < A$ > > > /fi •' T = V*7 : CR=S+T+4 : I F 
FR=0 THEN 500 
320 POKE S+6+T..0 
325 POKE S+5+T, 0 

340 POKE S+t'/fR-HB* I NT < FR/HB > 

350 POKE S+l+T, FR/HB 
360 POKE S+6+T,SV 
365 POKE S+5+T , AV 

370 POKE CR , W V+ 1 : FOR J=1 TO 58*AT : NEZTJ 
375 POKE CR , WV 

380 IF P=1 THEN V=V+1 : IF V=3 THEN V=0 
508 IF Hi'-" CTF1 .1" THEN M=1 : 0C=4 : GOTO 300 
510 IF fl$=" CTF3] " THEN M=2 •' 0C=3 : GOTO 300 


70 



529 

TP 

,s 

r 

L 

TF53 " 

THEH M“4 : oc 

=2 : GOTO 30O 

538 

T F 

Fj$= “ 

r 

s.. 

TF7J '* 

THEH M=8 •' OC 

= 1 : GOTO 300 

540 

IF 

H*~" 

r 

T'FP' '! " 

THEN W=0 : wv 

= 1 6 : GOTO 30 


0 






558 

t cr 

X i 

H*“ " 

r 

TF4 j » 

Tj-IPM f;.S::r | : j.«J , v l 

=32 : GOTO 30 


0 






560 

IF 

0 


r 

TP6 1 M 

THEN M~2 : WV 

=64 : GOTO 30 

579 

IF 

fì$=" 

! 

TF83 " 

THEH W=3 : WV 

-128 : GOTO 3 


00 






5o0 

IF 

fì$=" 



! p= 1 --P : GOTO 

300 

530 

IF 

fl$=" 

r 

f;| FhP '! 

" THEH 280 


600 

GO 

IO 30 

0 




500 

RR 

I HT " p 

p 

EMI UH 

1 TASTO " 


810 

GÈ 

T fì$ : 

T 

F Af-" 

“ THEN 810 


82@ 

p j ; ;> 

I NThT 

i 

; ppTf |p 

:N 



71 



* * 


5. Numeri 


* * 


Numeri casuali: distribuzione 


Vi siete mai domandati quanto siano effet- 
tivamente casuali i numeri prodotti da un 
generatore RND? 

Il seguente programma genera 100 numeri ca- 
suali tra 0 e 9 e conta quante volte viene 
ripetuto ogni valore. 

Alla fine viene mostrato un quadro riassun- 
tivo dei risultati. 


1 @ PR I NT " [ CLEfìR 3 " : X=RNB '.'.-TI > 

20 FOR L--1 TO 100 
30 H= I NT < 1 0*RND < 1 > > 

40 IF N=0 THEN R=A+1 

50 IF N=1 THEN B=B+1 

60 IF N-2 THEN C=C+1 

70 IF N--3 THEN D=D+1 

80 IF N=4 THEN E=E+1 

90 IF N=5 THEN F=F+1 

100 IF N=6 THEN G=G+1 

110 IF N~7 THEN H=H+1 

120 IF N=8 THEN 1=1+1 

130 IF N=9 THEN ,T=J+1 

140 FRI NT "STO CALCOLANDO" 

150 NEXTL 

160 PRINT" CCLEflR] " •' REM PULIZIA SCHERMO 


72 



170 PR I NT " 0 " .. fl 
180 PR I UT " 1 " .■ B 
190 PR I NT " 2 " .■ C 
200 PRIMI "3" .• D 
210 PRIMI" 4", E 
220 FRI MI "5" • F' 

230 PRIMI "6", 6 
240 PRIMI"?". H 
250 PRIMI "8" .« I 
260 PRIMI "9", J 
270 PR I MI : PR I MT •' PR I NT 

280 INPUT "PER PROSEGUIRE PREMI RETURN" 
K*290CLR : GOTO 10 


73 



Min/max fra numeri casuali 


E' importante poter ordinare un gruppo di 
numeri e stabilire quali siano i valori 
maggiori e quelli minori. 

Questa funzione e' svolta dal seguente 

progrsmma. 

11 generatore di numeri casuali si trova alla 
linea 30. 

Il range va da 0 a 999. 

La linea 50 determina il numero piu' basso, 
mentre la linea 60 il piu' alto della serie. 


1 0 PR I NT " l CLEflR 3 " : X-RNB < -T I > 

20 POR L=0 IO 99 
30 N= I NT < 1 000if:RHB < 1 > > 

40 IF L=0 THEN LN=N : HH=H 
50 IF NCLN THEN LN=N 
60 -IF N>HH THEN HN*N 
70 FRI NT "STO SCEGLIENDO" 

30 NEXTL 

90 PR I NT " C CLEflR 3 " ; REM PUL I Z I fi SCHERMO 
1 00 PR I NT " NUMERO BASSO : " , LN 
1 1 0 PR I NT " NUMERO ALTO : " , HN 
1 20 PR I NT : PR I NT : PR I NT : PR I NT 
130 FRI NT "PER AVERNE UN ALTRO" 

140 PRI NT "PREMI UN TASTO QUALSIASI" 


74 



THEN 150 


150 GET K$ 
160 IF «*="" 
170 CLR 
180 GOTO 10 



75 


Numeri casuali: media 


Il programma seguente genera 100 numeri 
casuali e la loro somma. 

Poi calcola la media aritmetica dei 100 
numeri • 

Il valore ottenuto risulta essere ancora un 
numero casuale di grande utilità' • 

Per far ripartire il programma, premere il 
tasto RETURN. 


10 

FRI NT" 

CCLEflR]" : X==F 

NTK 

~TI ) 


20 

POR L= 

0 TO 99 




30 

N= I NT 

1 0*RND < 1 > > 




40 

NT=HT+ 

N 




50 

FRI NT" 

STO FACENDO 

LR 

MEDIA" 


60 

NEKTL 





70 

FRI NT" 

[ OLEARI" •' REM 

PULIZIA 

SCHERMO 

80 

RV=NT/ 

1 00 




90 

FRI NT" 

IL TOTALE DI 

10 

0 H 


1 00 

FRI NT" 

NUMERI A GAS 

0" 



110 

FRI NT" 

DA 0 A 9" 




120 

FRI NT" 

E " ; NT 




130 

FRI NT 





1 40 

FRI NT" 

LA MEDIA E-" 

A'v 



150 

FRI NT: 

FRI NT : FRI NT : 

FRI NT 


160 

INPUT 

"PER PROSEGL 

IRE 

PREMI F 

ÌETURN" : 


K$170C 

LR : GOTO 10 





76 



Numero medio di una serie 


Ecco come trovare il numero centrale di 
serie di numeri. 

Inserite una serie di numeri e uno zero 
l'ultimo numero. 

Le linee 40 e 70 selezionano il numero 
alto e il piu' basso della serie. 

La linea 90 il valore medio della serie. 


10 PRIMI" C OLEARI REM PULIZIA SCHERMO 
20 INPUT "DAMMI UN NUMERO" ; 2 
30 IF 2=0 THEN 90 
40 N=N=+1 

50 IF N=1 THEN H=2 • L=2 

60 IF 2<L THEN L=Z 

70 IF 2>H THEN H=2 

80 GOTO 20 
90 M=L+< <H-L>/2> 

100 PR I NT- PRIMI : PRIMI 

110 PR I NT " NUMERO A META'" DELLA SERIE: ";M 
120 PRIMI: PRIMI -PRIMI 

130 INPUT "PER PROSEGUIRE PREMI RETURN".; 
KT140CLR GOTO 10 


una 

dopo 

piu' 


77 



Dal percentuale al decimale 


I depositi, gli interessi, le imposte e gli 
altri programmi finanziari diventano piu' 
pratici se non dovete fare conversioni 
numeriche a mente. 

Per esempio, se sapete che il vostro conto 
bancario vi frutta un'interesse pari all '8*, 
la via piu' breve per conoscere l'ammontare 
finale e' di inserire un 8 e lasciare al 
computer il compito di eseguire i conti. 
Inserite nel programma seguente, ad esempio, 
il valore 2.500.000 e digitate 6 alla 
richiesta della percentuale. 

II computer risponderà' 2.650.000. 


10 

PRIMI 

" [CLEfìR] " : 

REM 

PULIZIA 

SCHERMO 

20 

INPUT 

"PREZZO £ 

" , P 




30 

INPUT 

"TASSA DI 

VENDITA 

Z" E 


49 

T =0 . 0 

1#R 





50 

S=T*P 

: B=P+S 





60 

S*=STR*<S> :B$=S 

TE* CE 




70 

S*=RI 

3HTTCS*, CLENCS4 


If 

R 1 6HT* C 


B*, CI- 

EN < B* > - 1 > > 





89 

PRINI 

"C CLEfìR]" 





90 

PR I NT 

" T fìSSfì DI 

VENDITA" . 

"£";E 

;* 

100 

PRIHT 

"CONTO TOTALE" , 

il £ *• 

B* 



78 



110 PRINT : FRI NT : FRI NT 

120 INPUT " PER PROSEGUIRE PREMI RETURN": 
KT130CLR GOTO 10 


■ 

H 

m 

!V 


rs 





Si 

■ 


Kt 

» 


ii 

E 

» 

r| 

aS 

■K 

P 

■ 

1 

li 

il 


SI 

D 

■ 

E 

il 


te 

a» 

gg 

II 

0 



E 



r 

ab 

□ 

u 


a 



s 

2: 

2 


E 



79 




Percentuali 


Di aolito e' piu' pratico introdurre 
percentuali eapresae in punti per 100 
piuttosto che doverle convertire in decimali. 
Naturalmente il computer per lavorare ha 
bisogno dei valori decimali. 

Questo programma trasforma appunto dei valori 
percentuali in decimali. 


10 PRINT" [OLEARI " :CLR 

29 INPUT "PERCENTUALE: ";P 

30 D=0.01*P 

40 PR I NT " IiEC I MRLE " ; D 
50 PRINT : PRINT : PRINT 
60 CLR : GOTO 20 
70 PRINT: PRINT -PRINT 
80 PRINT" VALORI INSERITI: " ; T 
80 PRINT "PRINCIPALE ";fì 
1 80 PR I NT " VRR I RNZR : " ; V 
110 PRINT "DEVI AZIONE STANDARD: ";D 
120 PRINT: PRINT: PRINT 

130 PRINT "PREMI UN TASTO PER CONTINUARE" 
140 GET Ht ; IF H$="" THEN 140 
150 CLR : GOTO 10 


se 



Invertitore di numeri 


Dai al tuo conputer un qualaiasi numero di 
tre cifre e come risultato lo rivedrete 
capovolto. 

Per esempio 234 vi verrà' trasformato in 432. 


10 F'RINT" [CLERR] " : CLR 

28 F'RINT" INTODUCI UH NUMERO DI 3 CIFRE" 
30 INPUT N 

40 IF NC100 OR N>999 THEN PRINT"C2 UP3" 
: GOTO 30 
50 fì=INT <M/100> 

60 B= I NT < 1 0* C < N/ 1 00 > -R > ) 

70 C=VRL < R I GHT $ < STRT C N > , 1 ) > 

30 F'R I NT •• F'R I NTR I GHT $ ( STR$ < C > , 1 > ; R I GHT $ C 
STRT < E ) , 1 > R I GHT $ < STR$ *:] fi ) , 1 > 

90 F'RINT : F'RINT : PRINT 
100 CLR : GOTO 20 


81 



Scarta l’intero 


Si consideri il numero 123,456 e si voglie 
lsvorare solo sulle porzione a destra della 
virgola. 

Il programma seguente conserverà' solo la 
parte .456, scartando 123. 

In pratica tronca dei numeri decimali, 
conservandone solo la porzione frazionaria. 


1 @ PR I NT " C CLERR ] " : REM PUL I Z I Fi SCHERMO 
20 PR I NT " DAMMI I UH NUMERO" 

30 INPUT "CON UNA CIFRA DECIMALE" ;N 
40 n=n~int-::n> 

50 PRINT 

60 PRINT" LA PORZIONE" 

70 PRINT "FRAZIONALE DI" 
so printn; "E-";k 
90 PRINT: PRINT: PRINT 

100 INPUT "PER PROSEGIRE PREMI RETURN"; K 

$ 

110 CLR : GOTO 10 


82 



Arrotondamenti 


La tecnica per arrotondare un numero e' sem- 
plice. 

Questo programma che ° può' operare isolata- 
mente o nel corpo di un programma piu' vasto, 
arrotonda un numero decimale all'intero piu' 
vicino. 

Ci sono due vie per arrotondare un numero. 

Una dice: 

M Se il numero decimale e' maggiore di 5, 
arrotonda all'intero superiore”. 

Il che significa che 0.5 arrotonda per di- 
fetto. 

La seconda e' : 

M Per ogni numero minore di 5, arrotonda per 
difetto” . 

In questo caso 0.5 arrotonda per eccesso. 

La prima parte del programma segue la prima 
teoria, mentre la seconda arrotonda per di- 
fetto a meno di 5. 


1 0 PR I NT M II CLEAR 1 " : REM PUL I Z I fi SCHERMO 
20 PRI NT "DAMMI UN NUMERO" 

30 PRINT n Dfì HPPRUSS I MARE ALL' INTERO 11 
40 INPUT N 

50 IF N> I NT < N > THEN 88 


83 



60 R=N 
70 GOTO 130 
80 n=N-IHT<M> 

90 IF 10-0.5 THEN 120 
100 R= I NT < H > 

110 GOTO 130 
120 R- 1 NT < H > •+• 1 
130 FRI NT" t OLEARI " 

140 PRINTN 

150 FRI NT "E APPROSSIMATO A" 
160 PRINTR 

170 FRI NT •FRI NT •PRIMI 
180 CLR : GOTO 28 


84 



Arrotondamento a 2 cifre 


E ' possìbile arrotondare al centesimo piu' 
vicino, cioè' due cifre dopo la vìrgola. 

Ecco come: 


10 PRINT" CCLEAR3 " : REM PULIZIA SCHERMO 
20 PRINT "DAMMI UH NUMERO" 

30 FRI NT "CON PIU" DI" 

40 INPUT "DUE CIFRE DECIMALI" ;N 
58 N$«STR$<N> 

60 N$=R I GHT $ ( NT , < LEN ( NT > - 1 > > 

70 R= I NT < 1 00*N+0 . 5 > / 1 00 
80 RT=STRT<R> 

90 RT=R I GHT T ( R $ , < LEN < R$ > - 1 > > 

100 PRINT" CCLERRJ " 

110 PRINTN; "SI APPROSSIMA A" 

120 PRINTR 

130 PRINT: PRINT" 0" 

1 40* PR I NT : PR I NT " $ " ; NT " D I VENTA " 

150 PRINT "T" : R$ 

160 PRINT: FRI NT -PRINT 

170 INPUT "PREMI RETURN PER PROSEGUIRE"; 
KT180CLR : GOT 0 10 


8S 



Deviazione standard 


Ecco co»* determinare qualsiasi deviazione 
standard relativa ad una certa media. 

Per uscire dal proraama occorre inserire il 
vslore 999999999. 


10 PRINT"[CLERR]" ; CLR 
20 INPUT "VALORE : ";X 
30 IF X ; =999999999 THEN 60 
46 T=T+x’s=S+XT2^H=H+l 

59 GOTO 20 

60 A=T/N : V=S/N-R T2 : D-SQR < V > 

70 PR I NT :RR INTERRI NT 

80 PRI NT "VALORI INSERITI •' MT 
90 PRI NT "MEDIA: ”;R 
100 PRI NT "VARIANZA: " ; V 
110 PRI NT "DEVI AZIONE STANDARD: ",D 
120 PRI NT: PRI NT-’ PRI NT 

130 PRI NT "PREMI UN TASTO PER CONTINUARE" 
140 GET H$:IF H$= " " THEN 140 
150 CLR : GOTO 10 


88 



Funzioni logiche 


Puoi far fare al computer coae basate sulla 
sua decisione che qualcosa possa esistere. 
Questo primo programma stampa il valore di C 
solo se B esiste. 

La decisione e' nella linea 40. 

La macchina stampa B solo se non e' eguale a 

0 . 

A partire dalla linea 100 si ha un secondo 
programma il quale visualizza i risultati 
delle prime linee solo se risulta "vero" uno 
o entrambi i confronti. 


0 REM PRIMO ESEMPIO 

19 PRINT" CCLEfìR] " : CLR 

20 B=10 
30 C= 1 0$B 

40 IF B THEN PRINTC 
99 END 

100 REM SECONDO ESEMPIO 
110 PR I NT " C CLEFlR 3 " •' CLR 
1 cjy B‘= b+S ) y 3*4 
130 C= (. 5+2 > > < 9+2 > 

140 IF B THEN PRINT"B OKA't'" 
150 IF C THEN PRINT"C OKfìV" 
200 END 


87 



Integrali 


Queato utile programma permette il calcolo di 
integrali anche molto compleaai. 

Di volta in volta dovrete inaerire nella 
linea apecificata dal programma la funzione 
di cui vorrete atudiare gli intervalli di 
integrazione . 


8 POKE 53280 , 6 : POKE 5328 1,0: PR I NT " C VER 
DE23 " 

150 H=2 
160 V-221 

200 PR I NTCHR* U 47 > ; " I NTEFRALE CftLCOLflTO 
CON LA FORMULA " : PR I HTSPC < 7 > " D I S I MPS 
OH" 

205 FRI NT ; PRINT 

210 PR I NT CHR$ <176 > ; : F OR J=1 TO 11 
220 PR I NTCHR* < 1 92 > ; : .NEXT : PR I NT " ATTENZ I OH 
E"; : F OR J=1 TO 11 

230 PR I NTCHRS < 1 92 > ; : NEXT : PR I NTCHR* C 1 74 > : 

GOSUE 290 : PR I NTCHR* ( V > ; 

240 PRINT" LA SUBROUTINE ALLA LINEA 
" ; CHRf < V > : GOSUE 290 

250 PR I NT CHR$ < V > ; " 5000-5999 DEFI 

N I SCE " CHR* < V > : GOSUE 290 

260 PRINTCHRT(V>, " V COME FUNZIONE 


88 



DI X " ; CHR$<V> : GOSUE 290 
278 PR I NTCHR$ < 1 73 > : FOR J= 1 TQ 32 : PR I NTC 
HR$< 192) ; : NEXT • PRINTCHR$< 189) 

280 GOTO 300 

290 PR I NTCHRf < V > ; SPC < 32 > CHR* < y > : RETURN 
300 FRI NT': INPUT "LIMITE INFERI ORE. DI X" ; 
L 

310 FRI NT: INPUT "LIMITE SUPERIORE DI X"; 

IJ 

360 PR I NT " N . SEZ I OH I" , " I NTEGRRLE " 

370 FOR J= 1 TO 10 : PR I NTCHR* < 1 96 ) ; •' NEXT : P 
RINTSPC(10> :FOR J”1 TO 8 
380 PR I NTCHR* < 1 96 > : NEXT : PR I NT 
400 DX= < U-L > /H : T~0 
4 1 0 X~L : GOSUE 5008 ; T=T+V 
420 X=U : GOSUE 5000 : T=T+V 
450 M~N/2 : Z~0 
460 FOR J*1 TO M 

470 X=L +DX# < 2* J~ 1 > ■ GOSUE 5000 : Z=Z+V ' 

480 NEXT : T=T+4*Z 

500 M-~M- 1 : IF M~0 THEN 600 

510 2=0 : FOR J=1 TO M 

520 X=L+DX$2*J : GOSUE 5000 : Z = Z+V 

530 NEXT : T =T+2$Z 

600 fì=DX*T/3 

610 PRINTN,SPC<8>;R 

620 N--N:+2 

63@ GOTO 400 

4970 REM I SERI SCI LR SUBROUTINE Fi 5000 

4980 REM 
4990 REM 

5000 REM V=F ( X > Vfl QUI 
5999 RETURN 


09 



Sistemi lineari 


Come tutti i computer anche il vostro 
Commodore 64 ha delle capacita' matematiche 
non indifferenti. 

Ecco come sfuttarle nella risoluzione di un 
sistema lineare di equazioni ad —n— 
incognite. 


>00 RR I NT " C CLERR 3 C DOWN 3 


RISOLUZIONE 


201 


000 

301 

310 

3P0 


330 

340 

350 


«I ; pp J kjT H ...... - 11 

FRI MI"' D I S I STEN I " : PR I NT " 


FRI NT" 
INT" 


D I EQUfìZ I UNI L. I NEAR I " : PR 


FRI NT" [2 DOWN IDI QUANTE EQUAZIONI SI 
COMPONE IL SISTEMA" 

INPUT N 

I F N< 1 THEN PR I NT " Il DOWN 3 1 MPOSS I E I LE ! 
RIPETI ! " : GOTO 301 

IF N>15 THEN FRI NT" C DOWN IMI DISPIACE 
, NON ACCETTO PIU DI QUINDICIEQUAZIO 
NI " ■ FND 

DIM A ( N , N > .• R < N ) .. V < N > 

PR I NT " C DOWN 3 LE " ; N ; " I NCOGN I TE " 

PR I NT " SARANNO I ND I C ATE CON X 1 . . . X " ; M 
IDT<STRT(N),2, IO) 


90 



'360 

370 


Rfi 


390 


400 

410 

420 

438 

500 

5 10 
520 


GOSUB 900 : FOR J=1 ,TO H 

PR I NT " SCR I V 1 I PfiRfìME TR I DELL ' EQUftZ I 

.ONE"; J 

FRINÌ : FOR K=1 IO N 

PR I NT " COEFF I GENTE D I X " ; M I D* < STR* < K ) 
.•2/10) 

INPUT fi< J, K > : PRIMI NEXT 
I NF'UT " TERM I NE NOTO " ; R < J ) 

GOSUB 9O0 : NEXT 
GOSUB 20O0 

PR I NT " Lft SOLUZ I ONE • E " " •' PR I NT 
FOR J=1 TO H 

PR I NT " X " ; M I B$ < STRI < J > ,2, 1 0 > ; " = " ; V < J 


530 NEXT : END 

900 F'RINT ' PRINT" " 

910 PR I NT : RETURN 

2080 I F N= 1 THEN V < 1 > =R < 1 > • 'Fi < 1 , 1 > : RETURN 
2010 FOR K"1 TO N~1 
2020 I =K+ 1 
2030 L=K 

2040 I F BBS < fi < I .• K > > >fiBS < fi < L .• K > > THEN L= I 
2050 IF KN THEN 1*1 + 1 : GOTO 2840 
2060 IF L=K THEN 2100 

2070 FOR J=K TO N : Q=fi < K .* J > : fi < K .. J > -fi < L J > ' 

2088 fi < L .. J > =Q : NEXT 

2090 Q*R ( K ) : R ( K ) *R L ) : R L ) *Q 

2100 I=K+1 

2105 IF fi <K, 10*0 THEN PRINT"C"E"'UN ERRORE 
; I L S I SIENA E t RVS 3 1 MPOSS I B I LE t RVOF 

i : “ 

i J 


1 

06 

i 

F fi 

CK/K) 

~0 

THEN 

END 



1 

10 

i\ 

=FK 

INO/ 

FKK 

, ) : I 

fi< I !< 

■> 

0 

1 

28 

F 

OR 

J=K+ 1 

TO 

N : fi 

<1, JI 


<1/ J) 



) 

^ ne; 

NT 






1 

30 

R 

(I) 

=R<:i> 

-Q# 

ROO 

•IF I 

•_i i 

THEN 


91 



oro 2110 


2140 

NEXT 





•» a tr 

ull’r J 

IF 8 < M .. N 

>=0 T 

HEN 

PR:INT"C-E'!JN 

ERRORE 


; IL SIS 

jr "j »? 

TEMPI 

E IR 

VS 3 I MPOSS IBI 

LECRVOF 

2146 

ÌF 8 < N , N 

>=@ T 

NEH 

END 


2150 

V<N>=R<N 

•} 

)/8(N 

,H> : 

POR I =M- 1 TO 

1 STEP 

2 1 60 

Q=0 ' FQR ' 

J--I + 1 

TO 

N : Q~Q+H< I .■ J> 

( j y 

■y •! 7 r-i 

V ( J ) - (."• 

i y -q > 

/8 < I 

, I ) : NEKT : NEX 

T ' 

V 1 Ofi 

l*w ••• 

RETURN 






92 



Simulatore di calcolatrice RPN 


Il vostro computer può' essere predisposto 
per lsvorare come una calcolatrice 
funzionante col sistema RPN (11 termine RPN 
non e' altro che 1' acronimo di Notazione 
Polacca Inversa) . 

Per eseguire un calcolo digitate un numero 
seguito lmmadlatamente dal simbolo di un 
operatore aritmetico. 

Il tasto STOP pone fine al programma. 


1 0 PR I NT " C CLE'fiR 3 " : REM PUL I Z I fi SCHERMO 
20 N*="" : X$=“" 

25 FRINII* 

30 GEI N* 

35 IF N*=" " THEN 30 

40 IF FlSC (. N* > <42 OR FlSC<N*>>57 THEN 30 

50 IF FlSC<N*>=46 OR FISCO!* »47 THEN K*= 

X*+N* : GOTO 30 

60 IF RSC*::N*>=42 THEN 1100 

65 IF FISCO!* >=43 THEN 1200 

70 IF RSC < N* > =45 THEN 1300 

80 IF FISCO!* >=47 THEN 1400 
90 GOTO 10 
1100 R=VFlL(K*> : T=T*X 
1120 GOTO 1420 


93 



1200 X=VfìL<X*> : T=T+X 
1220 GOTO 1420 
1 300 X-v'AL < Xf > : T=T-X 
1320 GOTO 1428 
1 400 X= VAL < X* > : T-T/X 
1 420 . T $=STR$ ( T > 

1430 GOTO 10 


M 



Divisione in fattori 


Questo programma trova tutti i fattori primi 
in cui risulta divisibile un numero 
qualunque. 

Può' essere usato come sottoprocedura di un 
programma piu' lungo. 

ZI numero di fattori individuali e' limitato 
dalla istruzione DIM. 


10 PRINT" C OLEARI " REM PULIZIA SCHÉRMO 
28 DIM GK650) 

30 INPUT "NUMERO" ;N 
40 FOR L=2 TO N/2 
50 M=N/L 

60 IF M=INTCM> THEN Q < L > =M 
70 NE/TL 

80 PR I NT : PR I NT " I F ATTOR I SONO : “ 

90 FOR L=1 TO N/2 

100 IF Q<L)>1 THEN PRINTGKL) ■' GOTO 120 
110 Z=Z=+1 
120 NEXTL 

130 IF N=1 THEN PRINT "NESSUNO" : GOTO 150 
140 IF 2= I NT < N/2) THEN PRINT" NESSUNO" 


95 



Da esadecimale in decimale 


I primi calcolatori inventati dall'uomo "ma- 
sticavano" aolo numeri binari . 

Noi siamo abituati a contare in base dieci. 
Oggi la tecnologia del silicio ha general- 
mente adottato la base 16 per velocizzare i 
calcoli meccanici. 

Questo programma vi permetterà' di acqui- 
stare familiarità' con i numeri esadecimali, 
trasformandoli in numeri decimali, per noi di 
piu' immediata comprensione. 


1 0 F2=4096 : F3~256 : F4~ 1 6 
2© PR I NT " [ CLEAR 3 t RVS 3 COHVERS I OHE DB ESfì 
DECIMALE IH DECIMALE " 

30 INPUT YT'IF LEM < V$ ) >4 THEN RUM 
35 IF LEN< V$><4 THEN PRI NT" CUPI AGGIUNGI 
GLI ZERI PER L.E CIFRE NON SIGN 

I F I CAT I VE " : GOTO 2000 
40 A$~LEFT$ < V$ , 1 > ^ KT--AT : GOSUE 1 000 
50 A=S*F2 

60 Ef =M I D* < V$ , 2 , 1 > : • GOSUE 1 000 
7© B“S#F3 

80 Cf~M I D$ < Y$ , 3 , 1 ;• : H$=C$ : GOSUE 1 000 
90 C=S*F4 

1 00 D*=R I GHTT < V$ , 1 > • M*=D$ : GOSUE 1 000 


96 



ii0 n=s 

1 28 T=R+B+C+D : PR I NT " C IJP 3 " .. T 
130 GET ZflF Z$="" THEN 130 
150 GOTO 30 

1000 IF X*="H" THEN S= 10 -RETURN 
1010 IF X$="B" THEN S=1 1 : RETURN 
1020 IF X*="C" THEN S= 1 2 : RETURN 
1030 IF K$=" D" THEN S*13= RETURN 
1040 IF X$="E" THEN S“ 1 4 : RETURN 
1050 IF X$="F" THEN S=15 : RETURN 
1060 S~VfìL(Xt> 

1070 RETURN 

2000 FOR GG=1 TO 2000 : NEXT : RIJN 


97 



Numeri caratteri 


Questo breve programma mostra il valore ASCII 
per ogni carattere della tastiera, accanto al 
carattere che rappresenta. 

Sarai rapidamente in grado di dire quale 
carattere corrisponda ogni numero del codice 
ASCII. 

Nella linea 40 c'e # un temporizzatore per 
permettere una lettura a tempo delle 
informazioni . 

Agendo sul numero 400 della linea 40 e' 
possibile abbreviare o allungare il tempo di 
permanenza delle immagini sullo schermo. 


10 F'RINT" CCLEflR] " 

28 FOR H=33 TO 127 
30 FRI HTN , CHR$ < N > : PR I NT 
40 FOR Tal TO 400 : HEXT T 
50 IF N=255 THEN 20 
60 NEXT N 

70 FOR N= 161 TO 255 
80 GOTO 30 


98 



T rova il numero 


Eccolo! 

Da qui, negli anni settanta, comincio'' la 
programmazione dei microcomputer. 

Il primo gioco ad eaaere giocato fu una 
routine di ricerca numerica con informazioni 
troppo grande/troppo piccolo. 

Il computer aeleziona un numero aegreto. 

Tu devi indovinarlo. 

Lo schermo ti informa se il numero che stai 
provando e' troppo elevato, troppo basso o se 
e' proprio quello giusto. 

Ecco come funziona: 

la linea 100 genera un numero casuale tra 
zero e 1000 <11 numero segreto) e lo 

immagazzina. 

La linea 210 ti chede di indovinarlo. 

Le linee 300-310 decidono se l'hai trovato o 
meno, ed infine la linea 220 tiene conto dei 
numeri dei tentativi . 


10 PRIHT" CCLEfìR] " ; REM PULISCE SCHERMO 
28 Z=RNIK~TI> 

30 T=0 

1 00 R= I NT < 1 000#RND < 1 > > 

200 PRIHT "HO UN NUMERO SEGRETO E TU DEVI 


M 



SCOPRIRLO" 

210 INPUT "INSERISCI UN NO. ";B 
220 T=T+1 

230 PR I NT : PR I NT = PRI NT "TENTATIVO NO. "JT 
300 IF B>R THEN F'RINT : INPUT "TROPPO ALTO 
, RITENTA" ; B : GOTO 220 
3Ì0 IF BCR THEN PRI NT: INPUT "TROPPO BASS 
0 , R I TENTA ";B: GOTO 220 
400 F'RINT" E OLEARI " 

410 F'RINT" SI, HAI INDOVINATO ! " 

420 F'RINTR; "E' IL NUMERO" 

430 FRI NT "L'HAI SCOPERTO" 

440 F'RINT" IN 'ST.:" TENTATIVI" 

450 FOR L= 1 TO 100 : F'RINT : NEXTL 
460 CLR 
470 GOTO 30 


100 



* * 


6. Gestionali 


* * 


Aumento del valore monetario 


Questa sezione del libro include una serie di 
programmi relativi alla gestione della 
contabilita' domestica e spicciola. 

Questo primo programma mostra come cresce il 
valore di un investimento ad un certo tasso 
di interesse annuo, calcolato mensilmente. 

Il primo valore da inserire e' l'ammontare 
iniziale dell'investimento. 

Successivamente viene richiesto il tasso di 
interesse annuo e il numero di mesi da 
visualizzare. 

La linea 10 cancella lo schermo; le linee 
.dalla 20 alla 40 acquiaiscono i dati, mentre 
dalla 50 alla 90 vengono prodotti i 
risultati . 

La linea 55 genera un rallentamento della 
visualizzazione per permettere una piu' 
comoda lettura dei dati. 


10 FRI NT" [OLEARI " : REM PULÌ ZI fi SCHERMO 

20 INPUT "CAPITALE £";P 

30 INPUT "INTERESSE ANNUO Z";R 

40 INPUT "NUMERO DEI MESI’SM 

50 PR I NT "C OLEARI" : REM PULIZIA SCHERMO 

60 PR I NT " MESE " ; SPC < ? > ; " E I LANC 1 0 " 




70 FOR 12=1 TO M 
80 I =< P* < 0 . 0 1 #R > / 1 2 
90 P=P+1 

1 @0 PP= I NT •:] 1 00#P+0 . 5 > 7 1 00 

110 PRIHTQ,PP 

120 FOR T=1 TO 400=NEXTT 

130 NEKTQ 

140 FRI NT : PRINT 

150 INPUT "PER PROSEGUIRE PREMI RETURN" 
K$ 

160 CLR ; GOTO 10 


102 



Differenza fra due date 


Quanti giorni ci sono da oggi al primo 
gennaio del 2000? 

Chiedetelo al vostro computer e lui aapra' 
dirvelo con esattezza, e velocemente! 


1 9 PR I NT " t CLEflR ] [' 2 DOWN ] C RVS 1 ENUMERO D I 
GIORNI IRÒ 2 DATE ( GG .• MM .• A A > [ RVOFF 3 


20 FRINÌ 

30 FRI NT "PRIMO DATA" 

40 INPUT Di, MI, VI 
45 FRI NT 

50 FRI NT "SECONDA DATA" 
60 INPUT D2,M2,V2 
70 M=M1 
80 D=D1 
90 V=V1 
100 GOSUB 230 
1 1 0 N=A 
120 M=M2 
130 D=D2 
140 V=V2 
150 GOSUB 230 
160 N=A-N 
165 FRINÌ' 


103 



170 

PRI NT" DIFFERENZA = " 

;n;" G 

IORNI " 

1 80 

FRI NT 




198 

FRI NT "ALTRI DATI CSI 

/HO)".; 



200 

INPUT X$ 




210 

IF X*~" SI" THEN 20 




220 

GOTO 460 




230 

ON MGQTO 260,280,260 

,340,2 

60 . 

340, 260 


, 260 , 340 , 260 , 340 , 260 




240 

FRI NT "DATA IRREALE" 




250 

RETURN 




260 

IF D>31 THEN 240 




270 

GOTO 350 




280 

I F V/40 1 NT C V/4 > THEN 3 1 0 



290 

I F V/400- 1 NT < V/400 ) 

THEN 3 

20 


300 

IF V/180OINTCV/100) 

THEN 

320 


310 

IF D>28 THEN 240 




320 

IF B>29 THEN- 240 




330 

GOTO 350 




340 

IF B>3@ THEN 230 




350 

DAT A 0 , 3 1 , 59 , 90 , 1 20 , 

151, 18 

1,2 

12 

351 

DATA 243 , 273 , 304 , 334 




360 

RESTORE 




36 1 

FOR Q=1 TO M 




362 

READ A 




363 

NEXTQ 




380 

A=A+V$365+ 1 NT C V/4 > +D+ 1 - 1 NT 

CV/ 

100)+ IN 


TC V/400 > 




390 

IF I NT < V/4 > O V/4 THEN 450 



4 1 0 

IF V/40O= I NT < V/400 > 

THEN 4 

30 


420 

IF V/ 1 00= I NT < V/ 1 00 ) 

THEN 4 

40 


430 

IF M>2 THEN 450 




440 

A-A--1 . 




456 

RETURN 




460 

END 





104 



Giorno della settimana 


Che giorno della settimana era il 15 ottobre 
del 1943? Oppure in che giorno della 
settimana e' nato un vostro piu' caro amico? 
La risposta alla velocita' del vostro fedele 
Commodore 64. 


1 0 PR I NT 11 [ CL.ERR ] [ 2 DOWN 3 il RVS 3 G I ORNO DEL 
Lft -.SETTI MONA [RVQFF 3 " 

20 FRI NT 

30 PR I N T ” < I NSER I RE 9 , 9 , 9 PER TERM I MARE > 

II 

35 PR I NT 

40 PRI NT" GIORNO.. MESE, ANNO" 

50 INPUT D , M , V 
60 IF MO0 THEN 100 
70 IF DO 9 THEN 199 
80 IF V<>9 THEN 199 
99 GOTO 369 

109 IF M>2 THEN 130 

110 M=M+ 1 2 
120 V=V-1 

130 N=D+2*M+ 1 NT < .6*<M+ 1 ) ) +V+ 1 NT < V/4 > - 1 NT 
< V/ 1 00 > + 1 NT ( V/499 > +2 

1 40 N= I NT < < N/7 I NT < N/7 > ) *7+ . 5 > 

159 IF N>9 THEN 189 


105 



1 60 PR I NT " r DQWN 1 [ RVS .1 DOMEN I Cfì C RVGFF 3 " 

3.70 GOTO 340 

180 IF N> 1 THEH 210 

1 90 PR I NT " t DOWN 3 1 RVS 3 LUNE!' I - C RVOFF 3 " 

200 GOTO 340 

210 IF N>2 THEN 240 

220 PR I NT " t DOWN 3 1 RVS 3 MERTÉD I •" C RVOFF 3 " 

230 GOTO 340 

240 IF N>3 THEH 270 

250 PR I NT " [ DOWN 3 C RVS 3 MERCOLED I E RVOFF 3 " 

260 GOTO 340 

270 IF N>4 THEN 300 

280 PR I NT " C DOWN 3 C RVS 3 G I OVED I " C RVOFF 3 " 

290 GOTO 340 

300 IF N>5 THEN 330 

3 1 0 PR I NT " [ DOWN 3 C RVS 3 VENERO I ' C RVOFF 3 " 
320 GOTO 340 

330 PR I NT " r DOWN 3 [ RVS 3 SRBflTO i RVOFF 3 " 

340 PRINT 
350 GOTO 49 
360 END 


106 



Comparazione di introiti 


Questo semplice programma raccoglie i dati 
relativi agli introiti mensili della vostra 
attività' e li visualizza su un grafico di 
immediata interpretazione, che pone in 
evidenza come differisca un mese dall'altro. 
Le linee dalla 100 alla 160 acquisiscono i 
dati; le linee dalla 300 alla 360 creano il 
grafico . 

La lunghezza massima delle barre orizzontali 
del grafico e' di 17 elementi. 


1 0 PR I NT " !I CLEBR 3 " = REM PUL I Z I fi SCHERMO 
2@ DIM CR < 6 > 

160 POR L=1 IO 6 

110 PRIWT" ENTRATE DI CASSA " 

120 PR I NT " DEL MESE" > L 
130 INPUT CR ( L ') 

140 IF ORCO >36' THEN PRINT" [2 UP]":G0TG 
130 

150 PR I NT 
160 NEXT 

200 PRINT" [OLEARI " 

210 PRINT" [NER03 " 

220 PRINT TAÉ<4>; "ENTRATE DI CASSA" 

230 PRINT tAE.<3>; "(VALORI DA' 0 A 36>" 


107 



240 FRI NT "CROSSO]" 

250 FRI NT 

300 FOR T=1 TO 6 

305 PRINTT; 

310 IF CR<T»36 THEN FRI NT "VALORE ECCE 
IVO" 

320 FOR X» 1 TO CR(T) 

330 IF CR ( T > >0 THEN FRI NT" CRVS'J 
340 NEXTX 

350 PR I NT " C RVOFF ] C DOWN 3 " 

360 NEXTT 

400 FOR W=1 TO 3 : FRI NT : NEXT 
410 FRI NT "[BIANCO]" 

420 INPUT "PREMI RETURN PER CONTINUARE 
V 

.439 CLR : GOTO 10 



Conta pezzi 


Questo programma vi consente dì contare un 
certo quantitativo di merce. 

Semplicemente digitando sulla tastiera un 
numero alla volta. 

Non e' neppure necessario premere RETURN; il 
computer visualizza immediatamente il valore 
totale. 

I tasti utilizzabili sono quelli compresi tré 
0 e 9. 


1 8 PR I NT " C CLEflR 1 " '■ REM PUL IZIR SCHERMO 
20 GQSUB 200 
30 GEI Kf 

40 IF THEN 30 

50 IF K$="C" THEN T=0 : GOTO 90 

60 IF FlSC < K:$ : > <48 OR flSC<K$»57 THEN 30 

70 N=VRL < Kf > 

80 T-T+N 
90 GOSUB 200 
100 PR I NT " T OTfiLE " ; T 
110 GOTO 30 
200 PRINT" CCLERR3 " 

2 1 0 PR I NT TRE < 4 > ; " GOMMATORE " 

220 FOR L=1 TO 22 : PRINT"*" ; : NE NT 
230 RETURN 


10 » 



Inventario 


Il seguente programma e' atato preparato per 
eseguire l'inventarlo di 10 categorie di 
prodotti . 

Le categorie dei prodotti sono individuati 
dai numeri da 1 a 10. 

Si possono introdurre un numero indeterminato 
di elementi per ogni categoria, senza con 
questo dover rispettare alcun ordine 
particolare. 

Il valore 0 segnalerà' al computer che 
l'introduzione dei dati e' terminata e 
provocherà' la visualizzazione del gran 
totale relativo ad ogni categoria. 

La linea 25 richiede il numero della 
categoria; se 0 salta alla linea 70 per il 
gran totale, diversamente procede alla linea 
40. 

L'input del numero di categoria e' 
controllato per evitare l'acquisizione di 
dati non validi. 

La linea 50 chiede il quantitativo di merce 
per categoria. 

La linea 60 attua la diramazione alle diverse 
categorie. 

Il programma ricicla continuamente fino alla 
digitazione del valore 0. 


110 



INVENTARIO 

20 F'R I NT " C CLEAR ] " ; REM PULIZIA SCHERMO 
25 INPUT "CODICE MERCE" ;C 
30 IF C~0 THEN 70 
40 IF O10 THEN 20 
50 INPUT "QUANTITÀ " " ; Q 
60 ON CGOT 0 20 1 .• 202 .. 203 , 204 , 205 .• 206 .. 207 
,208,209,210 
70 F'RINT" [ CLEAR 3 " 

90 GOSUB 250 
100 F'R I NT : F’R I NT : F’R I NT 

110 INPUT "PREMI RETURN PER CONTINUARE"; 
K$ 

120 CLR ; GOTO 20 


201 

J=J+Q ■' GOTO 

20 

202 

K,=K+w • ijijTU 

20 

203 

L=L+Q : GOTO 

20 

204 

M=M+Q ; GOTO 

20 

205 

N=H+Q : GOTO 

20 

206 

r=r+q : GOTO 

20 

siW f 

S=S+Q : GOTO 

20 

208 

T~T+Q : GOTO 

20 

209 

U=U+Q •' GOTO 

20 

210 

y-y+Q : GOTO 

20 


220 END 

250 PRI NT "MERCI" 

260 PR I NT " COD I CE " , " QUANT I TA " 

270 PRI NT 

300 F'RINT" 1 " , J 

310 F'RINT "2" , K 

320 F'RINT "3" , L 

330 F'RINT "4" , M 

340 F'R I NT " 5 " , N 

350 F'RINT "6" , R 

368 F'RINT" 7" , S 


ili 



‘•ij co 


•M 

" .. u 


"10" , v 

o. 





Ore e salari 


Queste utili linee calcolano il numero totale 
di ore lavorative a tempo pieno e il numero 
di ore di lavoro atrordinario. 

Viene fornito anche l'ammontare del pagamento 
finale arrotondato all'unita'. 

Il programma sa che lo straordinario inizia 
dopo le 40 ore. 


10 PR I NT " C CLEfìR ] " 

20 FRI NT "STI PENDIO PER UN" ORR" 

30 INPUT "£ ";P 

40 PRI NT" NUMERO DI ORE DR RETRIBUIRE" 
50 INPUT H 

60 IF H>40 THEN QT*H-40 = GOTO 100 
70 W=H*P 

88 PRI NT" STI PENDIO LORDO" 

90 PR I NT " £ " .. N 
100 END 

1 1 0 W= ( 40#P ) + C 0T#P# 1.5) 

120 GOTO 80 


113 



Al penny + vicino 


Questo programma e' utile per arrotondare un 
numero contenente centesimi, al decimale piu' 
prossimo. 

Per esempio, da 151,6972 a 151,70. 

Questo piccolo programma può' costituire una 
utile sottoprocedura in un programma piu' 
vasto . 

Per fare ciò' richiamatelo con un opportuno 
comando GOSUB e modificatene i numeri di 
linea. 

In questo caso non dimenticate di cancellare 
il contenuto della linea 180 e di sostituirlo 
con un RETURN. 


10 FRI NT" CCLERR3 " 

20 PR I NT " I NTROD I C I UN NUMERO CON PIU"' D 
I DUE CIFRE DEC INFILI" 

55 INPUT N 

60 R=I NT < 1 004-N+0 . 5 > / 1 00 
70 FRI NT 

80 N*= " $ " +R I GHT ■$ < ( STRf ( N > > , < LEN « STR$ < N) 
> - 1 > > 

90 R*= " $ " +R I GHT $ < < STR$ ( R > > , < LEN < STR$ < R ) 

> - 1 > > 

100 : PRINT" CCLEfiRI " 


114 



104 PRINTNf 

110 PRINT" ARROTONDATO DIVENTA:" 

115 PRINTR* 

129 FRI NT: PRINT: PRINT 

130 PRINT "PREMI UN TASTO PER CONTINUARE" 
160 GET A* IF A|:="" THEN 160 

180 CLR : GOTO 10 


115 



Pagamento automobile 


Dovete acquietare una nuova auto? 

Servitevi del vostro computer per valutare 
velocemente il costo mensile di ogni modello. 
Immaginate di volere una vettura da 8 milioni 
e di poterne anticipare solo uno. 

Decidete quindi di rateizzare il rimanente 
importo in 36 mesi. 

L'interesse annuale sulle automobili e' del 
15 *. 

Impostate i dati e otterrete il valore 
dell'ammontare di ogni rata. 


1 9 PR I NT " C CLEfìR ] " : REM PUL I Z I fi SCHERMO 

29 GOSUB 250 
2f=j p p I N T 

30 PRINT "PAGAMENTO RATE AUTOMOBILE" 

40 IJUSUB 250 

50 PRINT 

60 PRINT" PREZZO D" ACQUISTO £" 

70 INPUT T 

80 PRINT "AMMONTARE DELLA SOMMA RIMASTA 
£" 

90 INPUT R 

100 PRINT "NUMERO DEI MESI" 

110 INPUT N 


116 



129 PRI NT "INTERESSE ANNUO *i" 

130 INPUT I 

T50 P*<T-R>#I/< 1-1/X 1 + D IN). 

1 60 PP= I NT < 1 003KP+8 . 5 ) / 1 00 
170 PRI NT 

180 PR I NT " PAGAMENTO £",PP 
190 PRI NT 
200 GOSUB 250 
210 PRI NT 

220 INPUT "PER PROSEGUIRE PREMI RETURN"; 
K* 

230 CLR 

240 GOTO 10 

250 FOR L=1 TO 25 

260 PRI NT 

270 NEXTL 

330 RETURN 


117 



Identificazione alfabetica 


Il programma converte un numero compreso tra 
0 e 26 nel corrispondente carattere 
alfabetico. 

Osservate come per il programma di 
conversione si faccia uso dei comandi READ e 
DATA. 


10 F'RINT" CCLEAR3 " 

2© PRIHT" INTRODUCI IL NUMERO DI UNfì LET 
TERfl " 

30 PR I NT " DEL L " ftLFRBE T 0 DA 1 fi 26" 

40 INPUT N 

60 IF N<1 OR N>26 THEN PRINT"C2 UP3":G0 
TO 40 

70 FOR L*1 TO N 
80 READ R$ 

9@ NEXT 

1 00 PR I NT •' PR I NT •• PR I NT 

110 PRINT"Lfi LETTERA CORRISPONDENTE RL N 
IJMERO".: N; " E" : C RVS 3 " ; R* 

200 FOR L=1 TO 7 : FRI NT : NEXT 
210 RESTORE 
220 GOTO 20 

300 DRTR A, E.- C , D , E , F , G , H , I , J , K , L , M , N , 0 , 

D n . D C T I I 1.1 V U ~f 


118 



Classificazione 


Un gran quantitativo di numeri può' eaaere 
classificato e diviso in una quantità' piu' 
piccola. 

Guarda il nostro esempio: 

accoglie risultati e li divide in categorie 
denominate A,B,C,D ed F. 

Il programma presume che i singoli valori 
varino in un range compreso fra 0 e 100. 

La classificazione in lettere fa 

corrispondere una F ai risultati da 0 a 59; D 
ai valori 60-69; C ai valori 70-79; B ai 
valori 80-89 e A ai punteggi dal 90 al 100. 
Immetti tutti i punteggi che vuoi e infine la 
lettera X per concludere il ciclo di 
immissione . 

Le linee 100-140 dividono tutti i punteggi 
nelle categorie A-F. 

Le linee 150-170 segnalano 1 valori massimi e 
minimi mentre la 200 trova il valore medio e 
quello piu' probabile. 


1© PR I NT " C CLEAR 3 " 

20 PRINT"DIGI TR UN GRUPPO HI URTI" 

30 PRINT"Dfl 1 fi 100 UNO ALLA VOLTA" 
40 PR I NT : PR I NT : PR I NT 


119 



50 PRI NT "INSERISCI X PER FINIRE" 

60 FRI NT : PRI NT 

80 INPUT " C RVS 3 DAT 0 C R'v'OFF ] " ; G$ 

85 IF G$=" " THEN 80 
90 IF G*«"X"' THEN 200 

100 g=val ( o$ :> 

110 N=N+1 

120 IF GC60 THEN F=F+1 : GOTO 150 
125 IF G<70 THEN D=D+1 : GOTO 150 
130 IF GC80 THEN C=C+l : GOTO 150 
135 IF GC90 THEN B=B+1 : GOTO 150 
140 A=A+1 

150 IF N=1 THEN L=G : H=G 

160 IF GCL THEN L=G 

170 IF G>H THEN H=G 

180 S=S+G 
185 G$=" " 

190 GOTO 80 

200 P-S/N : M=L+ < < H-L > /2 > 

210 PRINT" [OLEARI " 

220 PRI NT" CI SONO " ; N; "URTI " 

230 PRINT"! VALORI VANNO DR";L;" A";H 
240 PRINT" IL VALORE CENTRALE E"". NI 
250 PRI NT "LA NED IR E",P 
260 PRINT 

270 PRI NT "TOTALE PER OGNI CATEGORIA" 

280 PRINT 
290 PRI NT "A", A 
300 PRINT"B",B 
310 PRI NT" C'SC 
320 PRI NT "D", B 
330 prinT"F",F 

410 PRINT "PREMI [ RVS 3 RETURN [ R'v'OFF 3 .PER C 
ONTI NURRE" 

420 INPUT K* 


120 



430 CLR 
440 GOTO 10 



121 






Pubblicità’: 

costo per unità di vendita 


Il vostro quotidiano preferito possiede 11 
miglior rapporto prezzo quantità' per 11 
settore pubblicitario. 

Un annuncio vi costa 330000 lire e vi frutta 
la vendita di 77 prodotti. 

Quanto e' stato 11 costo unitario? 

La giusta risposta verrà' data da questo 
breve programma. 


10 PR I NT " [ CLERR ] " 

28 INPUT "COSTO INSERZIONE"; A 
30 I NPUT " UN 1 Tfi •" VENDUTE " ; U 
40 C-R/U 
45 PRINT 

50 PR I NT " Lfì PUBBLICITÀ" COSTA £ ",C 
55 PRINT "PER UNITA" VENDUTA" 

58 POR P~1 TU 9 '■ PRINT ' NENT 
60 CLR 
70 GOTO 20 


122 



Statistiche in base 1 000 


Supponete che la vostra radio locale affermi 
di raccogliere 51000 ascoltatori per ogni 
133000 lire di spese plubbicitarie e che 
l'amminastratore di un quotidiano sostenga 
che il costo di un inserzione sia di 330000 
lire per ogni 1000 lettori. 

Il seguente programma fornisce i valori 
necessari per stabilire quale delle due 
pubblicità' aia piu' reddittizia, valutando 
la percentuale in base mille. 


1@ PR I NT "C CLERI?]" 

20 INPUT "COSTO INSERZIONE" ;fl 
30 I NPUT " C I RCOLfìZ I OHE " ; C 
40 M= 1 000* ( Fi/C > 

45 PRINT 

50 PRINT"£" ; M 

55 PRINT "COSTO PER MILLE" 

60 POR Q= 1 TO 10= PRINT : NEXTQ 
70 GOTO 20 


123 



* ★ 


7. Sorpresa 


* * 


10 POKE 53272,21 

11 POKE 53280, 1 

12 POKE 53281,1 

13 PRINTCHR$<14> 

14 PRINT"[CLERRHGRIGIQ2H5 DOWN] 1 

-ri -*\\* -*l rv*-%r" 

15 PRINT"[2 DOWN] T~- ri /\ \“» * 

//T " 

16 CLR 

17 DIM M$<24) 

18 T0=TI 

19 PRINT"[2 DOWN ] [ NERO ] -s NTRODUC I L'tNNQ <4 

DIGIT ES. 1984) " 

20 INPUT "[DOWN] [VIOLA] G 

21 INPUT "[2 DOWN] [NERO]NESE <1-12) [VIOL 

R]";M 

22 IF GC1900 THEN 29 

23 D«< G-l 900) #365 

24 FOR Q*1901 TO G-l 

25 : IF Q/4*INT<Q/4) THEN D=D+1 

26 NEXT 

27 D*D+2 

28 GOTO 37 

29 PRINT "[CLERR]" 

30 D*G#365 

31 FOR Q*1 TO G-l 


124 




32 ; IF Q/400- I NT < Q/400 ) THEN 34 

33 : IF O/lOO-INTCG/lOO) THEN 35 

34 : IF Q/4*INT(Q/4) THEN D*D+1 

35 NEXT 

36 D*D+1 

37 PR I NT" C CLEAR H 6 DOWN] CI 1 RIGHT] [GIALLO] 

I -, A_-,t/T H 

38 FOR J=1 TO 24 

39 : READ M$< J) 

40 NEXT 

41 FOR J=1 TO 7 

42 : READ DfCJ) 

43 NEXT 

44 PRINTn$C2WM) TAB<35)G 

45 PRINT" [DOWN] " 

46 FOR J=1 TO 7 

47 = PRINT TAB<6#<J>-6>D$<J>; " "J 

48 NEXT 

49 IF G/400* I NT < G/400 > THEN 51 

50 IF G/100=INT (G/100) THEN 52 

51 IF G/4=INT<G/4) THEN M#<4>="29" 

52 FOR J=2 TO 2#M-2 STEP 2 

53 :S1*S1+VAL<I1$<J>) 

54 NEXT 

55 IF M=1 THEN S1=0 

56 S=S1+D-7#INT<<81+DV7> 

57 V=VRL<M$<2#M>> 

58 S=S+7 

59 IF S>7 THEN 8=8-7 

60 T=1+6*KS-1> 

61 U=5 

62 PRINT 

63 PRINT. TAB<T«1>; 

64 IF T«37 THEN 67 

65 FOR D=1 TO V 

66 : GOTO 69 


125 



67 SPRINT 1 

68 FOR D*2 TO V 

69 : IF POSC0X5 THEN PRI NT "CROSSO 3"; 

70 : IF POS<0»5 THEN PRINT" CBLEU3". 

71 : IF POS<0)>35 THEN PR I NT " C VERDE 3 " » 

72 : PR I NTD ; SPC < U-LEN < STR$ < D ) ) > ; 

73 : IF POS<0)>34 THEN U*3 

74 : IF POS <0X34 THEN U*5 

75 NEXT 

76 PRINT 

77 INPUT "C2 DOWN 3 C NERO ] ♦NCORfl ";K$ 

78 IF LEFT$<K$, 1>«"S" THEN 16 

79 IF LEFT$<K*.1>»"N" THEN PRINTCHR$< 142) : 
END 

80 GOTO 76 

81 DRTfi "CNER03I ENNAIOCNERQ3",3l. H [GRIGIO 
1 3 -EBBRA 1 0 C NERO 3 % 28 , " C VERDE2 3 NARZO C NER 

0 3 % 3 1 , H C VERDE 3 f PR I LE C NERO 3 " , 30 

82 DRTfi " C RZZUR 3 NfiGG 1 0 C NERO 3 " . 3 1 . " C V I OLR 3 

1 I UGNO [NERO 3" , 30. " C ROSSO 3 LUGL 1 0 C NERO 3 " , 
31 

83 DATA H C ROSA 3 «UGUSTO C NERO 3 " . 31 . " C ARANO 3 
SETTEMBRE C NERO 3 " . 30 . " C MARR 3 fTTOBRE C NERO 

•j ii ^ 3 1 

84 DATA " COR I G 1 02 3 /ÌDVEMBRE C NERO 3 " . 30 . " C NE 
RO 3 ~I CEMBRE C NERO 3 " . 3 1 

85 DATA "CR0SS03‘*0M ,, . M CGRIGI013LUN"."^R M 
, " NER ' V I 1 0 ’ V XEN " . " C VERDE 3 #AB " , " “OH " 


126 



LIBRI DI SYSTEM - libro mensile di Commodore Computer Club - Edizioni System Editoriale 
s.r.l. - v.le Famagosta, 75 - 20142 Milano - Tel. 02/8467348 - Dir. responsabile: Michele di Pisa - 
Reg. Trib. di Milano n. 370/82 - Sped. Abb. post. gr. 111/70 - Stampa: Lito 3 - Cologno Monzese. 




E 

E 

S 


£